diff --git a/doc/1.3.0/guacamole-common-js/ArrayBufferReader.js.html b/doc/1.3.0/guacamole-common-js/ArrayBufferReader.js.html
new file mode 100644
index 0000000..c663351
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/ArrayBufferReader.js.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly received packets as array buffers. Note that this object will
+ * overwrite any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.ArrayBufferReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    // Receive blobs as array buffers
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        // Call handler, if present
+        if (guac_reader.ondata)
+            guac_reader.ondata(arrayBuffer);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {ArrayBuffer} buffer The data packet received.
+     */
+    this.ondata = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/ArrayBufferWriter.js.html b/doc/1.3.0/guacamole-common-js/ArrayBufferWriter.js.html
new file mode 100644
index 0000000..0e13f59
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/ArrayBufferWriter.js.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with arbitrary
+ * binary data, supplied as ArrayBuffers.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.ArrayBufferWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    // Simply call onack for acknowledgements
+    stream.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Encodes the given data as base64, sending it as a blob. The data must
+     * be small enough to fit into a single blob instruction.
+     * 
+     * @private
+     * @param {Uint8Array} bytes The data to send.
+     */
+    function __send_blob(bytes) {
+
+        var binary = "";
+
+        // Produce binary string from bytes in buffer
+        for (var i=0; i&lt;bytes.byteLength; i++)
+            binary += String.fromCharCode(bytes[i]);
+
+        // Send as base64
+        stream.sendBlob(window.btoa(binary));
+
+    }
+
+    /**
+     * The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+     * in bytes. Data sent via
+     * [sendData()]{@link Guacamole.ArrayBufferWriter#sendData} which exceeds
+     * this length will be split into multiple blobs. As the Guacamole protocol
+     * limits the maximum size of any instruction or instruction element to
+     * 8192 bytes, and the contents of blobs will be base64-encoded, this value
+     * should only be increased with extreme caution.
+     *
+     * @type {Number}
+     * @default {@link Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH}
+     */
+    this.blobLength = Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH;
+
+    /**
+     * Sends the given data.
+     * 
+     * @param {ArrayBuffer|TypedArray} data The data to send.
+     */
+    this.sendData = function(data) {
+
+        var bytes = new Uint8Array(data);
+
+        // If small enough to fit into single instruction, send as-is
+        if (bytes.length &lt;= guac_writer.blobLength)
+            __send_blob(bytes);
+
+        // Otherwise, send as multiple instructions
+        else {
+            for (var offset=0; offset&lt;bytes.length; offset += guac_writer.blobLength)
+                __send_blob(bytes.subarray(offset, offset + guac_writer.blobLength));
+        }
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        stream.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};
+
+/**
+ * The default maximum blob length for new Guacamole.ArrayBufferWriter
+ * instances.
+ *
+ * @constant
+ * @type {Number}
+ */
+Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH = 6048;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/AudioContextFactory.js.html b/doc/1.3.0/guacamole-common-js/AudioContextFactory.js.html
new file mode 100644
index 0000000..5f0ec1d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/AudioContextFactory.js.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioContextFactory.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioContextFactory.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Maintains a singleton instance of the Web Audio API AudioContext class,
+ * instantiating the AudioContext only in response to the first call to
+ * getAudioContext(), and only if no existing AudioContext instance has been
+ * provided via the singleton property. Subsequent calls to getAudioContext()
+ * will return the same instance.
+ *
+ * @namespace
+ */
+Guacamole.AudioContextFactory = {
+
+    /**
+     * A singleton instance of a Web Audio API AudioContext object, or null if
+     * no instance has yes been created. This property may be manually set if
+     * you wish to supply your own AudioContext instance, but care must be
+     * taken to do so as early as possible. Assignments to this property will
+     * not retroactively affect the value returned by previous calls to
+     * getAudioContext().
+     *
+     * @type {AudioContext}
+     */
+    'singleton' : null,
+
+    /**
+     * Returns a singleton instance of a Web Audio API AudioContext object.
+     *
+     * @return {AudioContext}
+     *     A singleton instance of a Web Audio API AudioContext object, or null
+     *     if the Web Audio API is not supported.
+     */
+    'getAudioContext' : function getAudioContext() {
+
+        // Fallback to Webkit-specific AudioContext implementation
+        var AudioContext = window.AudioContext || window.webkitAudioContext;
+
+        // Get new AudioContext instance if Web Audio API is supported
+        if (AudioContext) {
+            try {
+
+                // Create new instance if none yet exists
+                if (!Guacamole.AudioContextFactory.singleton)
+                    Guacamole.AudioContextFactory.singleton = new AudioContext();
+
+                // Return singleton instance
+                return Guacamole.AudioContextFactory.singleton;
+
+            }
+            catch (e) {
+                // Do not use Web Audio API if not allowed by browser
+            }
+        }
+
+        // Web Audio API not supported
+        return null;
+
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/AudioPlayer.js.html b/doc/1.3.0/guacamole-common-js/AudioPlayer.js.html
new file mode 100644
index 0000000..cf4eaa6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/AudioPlayer.js.html
@@ -0,0 +1,566 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio player which accepts, queues and plays back arbitrary audio
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream. Data received along the provided
+ * stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioPlayer = function AudioPlayer() {
+
+    /**
+     * Notifies this Guacamole.AudioPlayer that all audio up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued audio data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioPlayer, and thus will be properly handled
+ * by Guacamole.AudioPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioPlayer, false otherwise.
+ */
+Guacamole.AudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioPlayer.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list. For example, "audio/L8" is a
+ * supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.AudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioPlayer.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioPlayer providing support for the given
+ * audio format. If support for the given audio format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream.
+ *
+ * @return {Guacamole.AudioPlayer}
+ *     A Guacamole.AudioPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioPlayer.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio player if possible
+    if (Guacamole.RawAudioPlayer.isSupportedType(mimetype))
+        return new Guacamole.RawAudioPlayer(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+ * audio. This player relies only on the Web Audio API and does not require any
+ * browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioPlayer
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream, which must be a
+ *     "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+ *     "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioPlayer = function RawAudioPlayer(stream, mimetype) {
+
+    /**
+     * The format of audio this player will decode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    /**
+     * The earliest possible time that the next packet could play without
+     * overlapping an already-playing packet, in seconds. Note that while this
+     * value is in seconds, it is not an integer value and has microsecond
+     * resolution.
+     *
+     * @private
+     * @type {Number}
+     */
+    var nextPacketTime = context.currentTime;
+
+    /**
+     * Guacamole.ArrayBufferReader wrapped around the audio input stream
+     * provided with this Guacamole.RawAudioPlayer was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The minimum size of an audio packet split by splitAudioPacket(), in
+     * seconds. Audio packets smaller than this will not be split, nor will the
+     * split result of a larger packet ever be smaller in size than this
+     * minimum.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MIN_SPLIT_SIZE = 0.02;
+
+    /**
+     * The maximum amount of latency to allow between the buffered data stream
+     * and the playback position, in seconds. Initially, this is set to
+     * roughly one third of a second.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxLatency = 0.3;
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet
+     * received by this audio player. This depends only on the size of each
+     * sample, and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The queue of all pending audio packets, as an array of sample arrays.
+     * Audio packets which are pending playback will be added to this queue for
+     * further manipulation prior to scheduling via the Web Audio API. Once an
+     * audio packet leaves this queue and is scheduled via the Web Audio API,
+     * no further modifications can be made to that packet.
+     *
+     * @private
+     * @type {SampleArray[]}
+     */
+    var packetQueue = [];
+
+    /**
+     * Given an array of audio packets, returns a single audio packet
+     * containing the concatenation of those packets.
+     *
+     * @private
+     * @param {SampleArray[]} packets
+     *     The array of audio packets to concatenate.
+     *
+     * @returns {SampleArray}
+     *     A single audio packet containing the concatenation of all given
+     *     audio packets. If no packets are provided, this will be undefined.
+     */
+    var joinAudioPackets = function joinAudioPackets(packets) {
+
+        // Do not bother joining if one or fewer packets are in the queue
+        if (packets.length &lt;= 1)
+            return packets[0];
+
+        // Determine total sample length of the entire queue
+        var totalLength = 0;
+        packets.forEach(function addPacketLengths(packet) {
+            totalLength += packet.length;
+        });
+
+        // Append each packet within queue
+        var offset = 0;
+        var joined = new SampleArray(totalLength);
+        packets.forEach(function appendPacket(packet) {
+            joined.set(packet, offset);
+            offset += packet.length;
+        });
+
+        return joined;
+
+    };
+
+    /**
+     * Given a single packet of audio data, splits off an arbitrary length of
+     * audio data from the beginning of that packet, returning the split result
+     * as an array of two packets. The split location is determined through an
+     * algorithm intended to minimize the liklihood of audible clicking between
+     * packets. If no such split location is possible, an array containing only
+     * the originally-provided audio packet is returned.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The audio packet to split.
+     *
+     * @returns {SampleArray[]}
+     *     An array of audio packets containing the result of splitting the
+     *     provided audio packet. If splitting is possible, this array will
+     *     contain two packets. If splitting is not possible, this array will
+     *     contain only the originally-provided packet.
+     */
+    var splitAudioPacket = function splitAudioPacket(data) {
+
+        var minValue = Number.MAX_VALUE;
+        var optimalSplitLength = data.length;
+
+        // Calculate number of whole samples in the provided audio packet AND
+        // in the minimum possible split packet
+        var samples = Math.floor(data.length / format.channels);
+        var minSplitSamples = Math.floor(format.rate * MIN_SPLIT_SIZE);
+
+        // Calculate the beginning of the "end" of the audio packet
+        var start = Math.max(
+            format.channels * minSplitSamples,
+            format.channels * (samples - minSplitSamples)
+        );
+
+        // For all samples at the end of the given packet, find a point where
+        // the perceptible volume across all channels is lowest (and thus is
+        // the optimal point to split)
+        for (var offset = start; offset &lt; data.length; offset += format.channels) {
+
+            // Calculate the sum of all values across all channels (the result
+            // will be proportional to the average volume of a sample)
+            var totalValue = 0;
+            for (var channel = 0; channel &lt; format.channels; channel++) {
+                totalValue += Math.abs(data[offset + channel]);
+            }
+
+            // If this is the smallest average value thus far, set the split
+            // length such that the first packet ends with the current sample
+            if (totalValue &lt;= minValue) {
+                optimalSplitLength = offset + format.channels;
+                minValue = totalValue;
+            }
+
+        }
+
+        // If packet is not split, return the supplied packet untouched
+        if (optimalSplitLength === data.length)
+            return [data];
+
+        // Otherwise, split the packet into two new packets according to the
+        // calculated optimal split length
+        return [
+            new SampleArray(data.buffer.slice(0, optimalSplitLength * format.bytesPerSample)),
+            new SampleArray(data.buffer.slice(optimalSplitLength * format.bytesPerSample))
+        ];
+
+    };
+
+    /**
+     * Pushes the given packet of audio data onto the playback queue. Unlike
+     * other private functions within Guacamole.RawAudioPlayer, the type of the
+     * ArrayBuffer packet of audio data here need not be specific to the type
+     * of audio (as with SampleArray). The ArrayBuffer type provided by a
+     * Guacamole.ArrayBufferReader, for example, is sufficient. Any necessary
+     * conversions will be performed automatically internally.
+     *
+     * @private
+     * @param {ArrayBuffer} data
+     *     A raw packet of audio data that should be pushed onto the audio
+     *     playback queue.
+     */
+    var pushAudioPacket = function pushAudioPacket(data) {
+        packetQueue.push(new SampleArray(data));
+    };
+
+    /**
+     * Shifts off and returns a packet of audio data from the beginning of the
+     * playback queue. The length of this audio packet is determined
+     * dynamically according to the click-reduction algorithm implemented by
+     * splitAudioPacket().
+     *
+     * @private
+     * @returns {SampleArray}
+     *     A packet of audio data pulled from the beginning of the playback
+     *     queue.
+     */
+    var shiftAudioPacket = function shiftAudioPacket() {
+
+        // Flatten data in packet queue
+        var data = joinAudioPackets(packetQueue);
+        if (!data)
+            return null;
+
+        // Pull an appropriate amount of data from the front of the queue
+        packetQueue = splitAudioPacket(data);
+        data = packetQueue.shift();
+
+        return data;
+
+    };
+
+    /**
+     * Converts the given audio packet into an AudioBuffer, ready for playback
+     * by the Web Audio API. Unlike the raw audio packets received by this
+     * audio player, AudioBuffers require floating point samples and are split
+     * into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The raw audio packet that should be converted into a Web Audio API
+     *     AudioBuffer.
+     *
+     * @returns {AudioBuffer}
+     *     A new Web Audio API AudioBuffer containing the provided audio data,
+     *     converted to the format used by the Web Audio API.
+     */
+    var toAudioBuffer = function toAudioBuffer(data) {
+
+        // Calculate total number of samples
+        var samples = data.length / format.channels;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Get audio buffer for specified format
+        var audioBuffer = context.createBuffer(format.channels, samples, format.rate);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill audio buffer with data for channel
+            var offset = channel;
+            for (var i = 0; i &lt; samples; i++) {
+                audioData[i] = data[offset] / maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return audioBuffer;
+
+    };
+
+    // Defer playback of received audio packets slightly
+    reader.ondata = function playReceivedAudio(data) {
+
+        // Push received samples onto queue
+        pushAudioPacket(new SampleArray(data));
+
+        // Shift off an arbitrary packet of audio data from the queue (this may
+        // be different in size from the packet just pushed)
+        var packet = shiftAudioPacket();
+        if (!packet)
+            return;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Set up buffer source
+        var source = context.createBufferSource();
+        source.connect(context.destination);
+
+        // Use noteOn() instead of start() if necessary
+        if (!source.start)
+            source.start = source.noteOn;
+
+        // Schedule packet
+        source.buffer = toAudioBuffer(packet);
+        source.start(nextPacketTime);
+
+        // Update timeline by duration of scheduled packet
+        nextPacketTime += packet.length / format.channels / format.rate;
+
+    };
+
+    /** @override */
+    this.sync = function sync() {
+
+        // Calculate elapsed time since last sync
+        var now = context.currentTime;
+
+        // Reschedule future playback time such that playback latency is
+        // bounded within a reasonable latency threshold
+        nextPacketTime = Math.min(nextPacketTime, now + maxLatency);
+
+    };
+
+};
+
+Guacamole.RawAudioPlayer.prototype = new Guacamole.AudioPlayer();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioPlayer.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+ *     false otherwise.
+ */
+Guacamole.RawAudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+ *     any parameters. If the necessary JavaScript APIs for playing raw audio
+ *     are absent, this list will be empty.
+ */
+Guacamole.RawAudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/AudioRecorder.js.html b/doc/1.3.0/guacamole-common-js/AudioRecorder.js.html
new file mode 100644
index 0000000..b96449d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/AudioRecorder.js.html
@@ -0,0 +1,664 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioRecorder.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioRecorder.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio recorder which streams arbitrary audio data to an underlying
+ * Guacamole.OutputStream. It is up to implementations of this class to provide
+ * some means of handling this Guacamole.OutputStream. Data produced by the
+ * recorder is to be sent along the provided stream immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioRecorder = function AudioRecorder() {
+
+    /**
+     * Callback which is invoked when the audio recording process has stopped
+     * and the underlying Guacamole stream has been closed normally. Audio will
+     * only resume recording if a new Guacamole.AudioRecorder is started. This
+     * Guacamole.AudioRecorder instance MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onclose = null;
+
+    /**
+     * Callback which is invoked when the audio recording process cannot
+     * continue due to an error, if it has started at all. The underlying
+     * Guacamole stream is automatically closed. Future attempts to record
+     * audio should not be made, and this Guacamole.AudioRecorder instance
+     * MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onerror = null;
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioRecorder, and thus will be properly handled
+ * by Guacamole.AudioRecorder.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioRecorder, false otherwise.
+ */
+Guacamole.AudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioRecorder.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+ * core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in
+ *     Guacamole.AudioRecorder, excluding any parameters.
+ */
+Guacamole.AudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioRecorder.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioRecorder providing support for the
+ * given audio format. If support for the given audio format is not available,
+ * null is returned.
+ *
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to send audio data through.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to be sent along the provided stream.
+ *
+ * @return {Guacamole.AudioRecorder}
+ *     A Guacamole.AudioRecorder instance supporting the given mimetype and
+ *     writing to the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioRecorder.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio recorder if possible
+    if (Guacamole.RawAudioRecorder.isSupportedType(mimetype))
+        return new Guacamole.RawAudioRecorder(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioRecorder providing support for raw PCM
+ * format audio. This recorder relies only on the Web Audio API and does not
+ * require any browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioRecorder
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to write audio data to.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to send along the provided stream, which
+ *     must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+ *     such as: "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioRecorder = function RawAudioRecorder(stream, mimetype) {
+
+    /**
+     * Reference to this RawAudioRecorder.
+     *
+     * @private
+     * @type {Guacamole.RawAudioRecorder}
+     */
+    var recorder = this;
+
+    /**
+     * The size of audio buffer to request from the Web Audio API when
+     * recording or processing audio, in sample-frames. This must be a power of
+     * two between 256 and 16384 inclusive, as required by
+     * AudioContext.createScriptProcessor().
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var BUFFER_SIZE = 2048;
+
+    /**
+     * The window size to use when applying Lanczos interpolation, commonly
+     * denoted by the variable "a".
+     * See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @contant
+     * @type Number
+     */
+    var LANCZOS_WINDOW_SIZE = 3;
+
+    /**
+     * The format of audio this recorder will encode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    // Some browsers do not implement navigator.mediaDevices - this
+    // shims in this functionality to ensure code compatibility.
+    if (!navigator.mediaDevices)
+        navigator.mediaDevices = {};
+
+    // Browsers that either do not implement navigator.mediaDevices
+    // at all or do not implement it completely need the getUserMedia
+    // method defined.  This shims in this function by detecting
+    // one of the supported legacy methods.
+    if (!navigator.mediaDevices.getUserMedia)
+        navigator.mediaDevices.getUserMedia = (navigator.getUserMedia
+                || navigator.webkitGetUserMedia
+                || navigator.mozGetUserMedia
+                || navigator.msGetUserMedia).bind(navigator);
+
+    /**
+     * Guacamole.ArrayBufferWriter wrapped around the audio output stream
+     * provided when this Guacamole.RawAudioRecorder was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet sent
+     * by this audio recorder. This depends only on the size of each sample,
+     * and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The total number of audio samples read from the local audio input device
+     * over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var readSamples = 0;
+
+    /**
+     * The total number of audio samples written to the underlying Guacamole
+     * connection over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var writtenSamples = 0;
+
+    /**
+     * The audio stream provided by the browser, if allowed. If no stream has
+     * yet been received, this will be null.
+     *
+     * @type MediaStream
+     */
+    var mediaStream = null;
+
+    /**
+     * The source node providing access to the local audio input device.
+     *
+     * @private
+     * @type {MediaStreamAudioSourceNode}
+     */
+    var source = null;
+
+    /**
+     * The script processing node which receives audio input from the media
+     * stream source node as individual audio buffers.
+     *
+     * @private
+     * @type {ScriptProcessorNode}
+     */
+    var processor = null;
+
+    /**
+     * The normalized sinc function. The normalized sinc function is defined as
+     * 1 for x=0 and sin(PI * x) / (PI * x) for all other values of x.
+     *
+     * See: https://en.wikipedia.org/wiki/Sinc_function
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the normalized sinc function should be computed.
+     *
+     * @returns {Number}
+     *     The value of the normalized sinc function at x.
+     */
+    var sinc = function sinc(x) {
+
+        // The value of sinc(0) is defined as 1
+        if (x === 0)
+            return 1;
+
+        // Otherwise, normlized sinc(x) is sin(PI * x) / (PI * x)
+        var piX = Math.PI * x;
+        return Math.sin(piX) / piX;
+
+    };
+
+    /**
+     * Calculates the value of the Lanczos kernal at point x for a given window
+     * size. See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the value of the Lanczos kernel should be
+     *     computed.
+     *
+     * @param {Number} a
+     *     The window size to use for the Lanczos kernel.
+     *
+     * @returns {Number}
+     *     The value of the Lanczos kernel at the given point for the given
+     *     window size.
+     */
+    var lanczos = function lanczos(x, a) {
+
+        // Lanczos is sinc(x) * sinc(x / a) for -a &lt; x &lt; a ...
+        if (-a &lt; x &amp;&amp; x &lt; a)
+            return sinc(x) * sinc(x / a);
+
+        // ... and 0 otherwise
+        return 0;
+
+    };
+
+    /**
+     * Determines the value of the waveform represented by the audio data at
+     * the given location. If the value cannot be determined exactly as it does
+     * not correspond to an exact sample within the audio data, the value will
+     * be derived through interpolating nearby samples.
+     *
+     * @private
+     * @param {Float32Array} audioData
+     *     An array of audio data, as returned by AudioBuffer.getChannelData().
+     *
+     * @param {Number} t
+     *     The relative location within the waveform from which the value
+     *     should be retrieved, represented as a floating point number between
+     *     0 and 1 inclusive, where 0 represents the earliest point in time and
+     *     1 represents the latest.
+     *
+     * @returns {Number}
+     *     The value of the waveform at the given location.
+     */
+    var interpolateSample = function getValueAt(audioData, t) {
+
+        // Convert [0, 1] range to [0, audioData.length - 1]
+        var index = (audioData.length - 1) * t;
+
+        // Determine the start and end points for the summation used by the
+        // Lanczos interpolation algorithm (see: https://en.wikipedia.org/wiki/Lanczos_resampling)
+        var start = Math.floor(index) - LANCZOS_WINDOW_SIZE + 1;
+        var end = Math.floor(index) + LANCZOS_WINDOW_SIZE;
+
+        // Calculate the value of the Lanczos interpolation function for the
+        // required range
+        var sum = 0;
+        for (var i = start; i &lt;= end; i++) {
+            sum += (audioData[i] || 0) * lanczos(index - i, LANCZOS_WINDOW_SIZE);
+        }
+
+        return sum;
+
+    };
+
+    /**
+     * Converts the given AudioBuffer into an audio packet, ready for streaming
+     * along the underlying output stream. Unlike the raw audio packets used by
+     * this audio recorder, AudioBuffers require floating point samples and are
+     * split into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {AudioBuffer} audioBuffer
+     *     The Web Audio API AudioBuffer that should be converted to a raw
+     *     audio packet.
+     *
+     * @returns {SampleArray}
+     *     A new raw audio packet containing the audio data from the provided
+     *     AudioBuffer.
+     */
+    var toSampleArray = function toSampleArray(audioBuffer) {
+
+        // Track overall amount of data read
+        var inSamples = audioBuffer.length;
+        readSamples += inSamples;
+
+        // Calculate the total number of samples that should be written as of
+        // the audio data just received and adjust the size of the output
+        // packet accordingly
+        var expectedWrittenSamples = Math.round(readSamples * format.rate / audioBuffer.sampleRate);
+        var outSamples = expectedWrittenSamples - writtenSamples;
+
+        // Update number of samples written
+        writtenSamples += outSamples;
+
+        // Get array for raw PCM storage
+        var data = new SampleArray(outSamples * format.channels);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill array with data from audio buffer channel
+            var offset = channel;
+            for (var i = 0; i &lt; outSamples; i++) {
+                data[offset] = interpolateSample(audioData, i / (outSamples - 1)) * maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return data;
+
+    };
+
+    /**
+     * getUserMedia() callback which handles successful retrieval of an
+     * audio stream (successful start of recording).
+     *
+     * @private
+     * @param {MediaStream} stream
+     *     A MediaStream which provides access to audio data read from the
+     *     user's local audio input device.
+     */
+    var streamReceived = function streamReceived(stream) {
+
+        // Create processing node which receives appropriately-sized audio buffers
+        processor = context.createScriptProcessor(BUFFER_SIZE, format.channels, format.channels);
+        processor.connect(context.destination);
+
+        // Send blobs when audio buffers are received
+        processor.onaudioprocess = function processAudio(e) {
+            writer.sendData(toSampleArray(e.inputBuffer).buffer);
+        };
+
+        // Connect processing node to user's audio input source
+        source = context.createMediaStreamSource(stream);
+        source.connect(processor);
+
+        // Attempt to explicitly resume AudioContext, as it may be paused
+        // by default
+        if (context.state === 'suspended')
+            context.resume();
+
+        // Save stream for later cleanup
+        mediaStream = stream;
+
+    };
+
+    /**
+     * getUserMedia() callback which handles audio recording denial. The
+     * underlying Guacamole output stream is closed, and the failure to
+     * record is noted using onerror.
+     *
+     * @private
+     */
+    var streamDenied = function streamDenied() {
+
+        // Simply end stream if audio access is not allowed
+        writer.sendEnd();
+
+        // Notify of closure
+        if (recorder.onerror)
+            recorder.onerror();
+
+    };
+
+    /**
+     * Requests access to the user's microphone and begins capturing audio. All
+     * received audio data is resampled as necessary and forwarded to the
+     * Guacamole stream underlying this Guacamole.RawAudioRecorder. This
+     * function must be invoked ONLY ONCE per instance of
+     * Guacamole.RawAudioRecorder.
+     *
+     * @private
+     */
+    var beginAudioCapture = function beginAudioCapture() {
+
+        // Attempt to retrieve an audio input stream from the browser
+        var promise = navigator.mediaDevices.getUserMedia({
+            'audio' : true
+        }, streamReceived, streamDenied);
+
+        // Handle stream creation/rejection via Promise for newer versions of
+        // getUserMedia()
+        if (promise &amp;&amp; promise.then)
+            promise.then(streamReceived, streamDenied);
+
+    };
+
+    /**
+     * Stops capturing audio, if the capture has started, freeing all associated
+     * resources. If the capture has not started, this function simply ends the
+     * underlying Guacamole stream.
+     *
+     * @private
+     */
+    var stopAudioCapture = function stopAudioCapture() {
+
+        // Disconnect media source node from script processor
+        if (source)
+            source.disconnect();
+
+        // Disconnect associated script processor node
+        if (processor)
+            processor.disconnect();
+
+        // Stop capture
+        if (mediaStream) {
+            var tracks = mediaStream.getTracks();
+            for (var i = 0; i &lt; tracks.length; i++)
+                tracks[i].stop();
+        }
+
+        // Remove references to now-unneeded components
+        processor = null;
+        source = null;
+        mediaStream = null;
+
+        // End stream
+        writer.sendEnd();
+
+    };
+
+    // Once audio stream is successfully open, request and begin reading audio
+    writer.onack = function audioStreamAcknowledged(status) {
+
+        // Begin capture if successful response and not yet started
+        if (status.code === Guacamole.Status.Code.SUCCESS &amp;&amp; !mediaStream)
+            beginAudioCapture();
+
+        // Otherwise stop capture and cease handling any further acks
+        else {
+
+            // Stop capturing audio
+            stopAudioCapture();
+            writer.onack = null;
+
+            // Notify if stream has closed normally
+            if (status.code === Guacamole.Status.Code.RESOURCE_CLOSED) {
+                if (recorder.onclose)
+                    recorder.onclose();
+            }
+
+            // Otherwise notify of closure due to error
+            else {
+                if (recorder.onerror)
+                    recorder.onerror();
+            }
+
+        }
+
+    };
+
+};
+
+Guacamole.RawAudioRecorder.prototype = new Guacamole.AudioRecorder();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioRecorder.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+ *     false otherwise.
+ */
+Guacamole.RawAudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+ *     excluding any parameters. If the necessary JavaScript APIs for recording
+ *     raw audio are absent, this list will be empty.
+ */
+Guacamole.RawAudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/BlobReader.js.html b/doc/1.3.0/guacamole-common-js/BlobReader.js.html
new file mode 100644
index 0000000..8fe8ca7
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/BlobReader.js.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a single blob by appending them to each other in order.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ * @param {String} mimetype The mimetype of the blob being built.
+ */
+Guacamole.BlobReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * The length of this Guacamole.InputStream in bytes.
+     * @private
+     */
+    var length = 0;
+
+    // Get blob builder
+    var blob_builder;
+    if      (window.BlobBuilder)       blob_builder = new BlobBuilder();
+    else if (window.WebKitBlobBuilder) blob_builder = new WebKitBlobBuilder();
+    else if (window.MozBlobBuilder)    blob_builder = new MozBlobBuilder();
+    else
+        blob_builder = new (function() {
+
+            var blobs = [];
+
+            /** @ignore */
+            this.append = function(data) {
+                blobs.push(new Blob([data], {"type": mimetype}));
+            };
+
+            /** @ignore */
+            this.getBlob = function() {
+                return new Blob(blobs, {"type": mimetype});
+            };
+
+        })();
+
+    // Append received blobs
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        blob_builder.append(arrayBuffer);
+        length += arrayBuffer.byteLength;
+
+        // Call handler, if present
+        if (guac_reader.onprogress)
+            guac_reader.onprogress(arrayBuffer.byteLength);
+
+        // Send success response
+        stream.sendAck("OK", 0x0000);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the current length of this Guacamole.InputStream, in bytes.
+     * @return {Number} The current length of this Guacamole.InputStream.
+     */
+    this.getLength = function() {
+        return length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.BlobReader as a Blob.
+     * @return {Blob} The contents of this Guacamole.BlobReader.
+     */
+    this.getBlob = function() {
+        return blob_builder.getBlob();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length The number of bytes received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/BlobWriter.js.html b/doc/1.3.0/guacamole-common-js/BlobWriter.js.html
new file mode 100644
index 0000000..c8dd19e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/BlobWriter.js.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with the
+ * contents of provided Blob objects.
+ *
+ * @constructor
+ * @param {Guacamole.OutputStream} stream
+ *     The stream that data will be written to.
+ */
+Guacamole.BlobWriter = function BlobWriter(stream) {
+
+    /**
+     * Reference to this Guacamole.BlobWriter.
+     *
+     * @private
+     * @type {Guacamole.BlobWriter}
+     */
+    var guacWriter = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter which will be used to send any
+     * provided file data.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var arrayBufferWriter = new Guacamole.ArrayBufferWriter(stream);
+
+    // Initially, simply call onack for acknowledgements
+    arrayBufferWriter.onack = function(status) {
+        if (guacWriter.onack)
+            guacWriter.onack(status);
+    };
+
+    /**
+     * Browser-independent implementation of Blob.slice() which uses an end
+     * offset to determine the span of the resulting slice, rather than a
+     * length.
+     *
+     * @private
+     * @param {Blob} blob
+     *     The Blob to slice.
+     *
+     * @param {Number} start
+     *     The starting offset of the slice, in bytes, inclusive.
+     *
+     * @param {Number} end
+     *     The ending offset of the slice, in bytes, exclusive.
+     *
+     * @returns {Blob}
+     *     A Blob containing the data within the given Blob starting at
+     *     &lt;code>start&lt;/code> and ending at &lt;code>end - 1&lt;/code>.
+     */
+    var slice = function slice(blob, start, end) {
+
+        // Use prefixed implementations if necessary
+        var sliceImplementation = (
+                blob.slice
+             || blob.webkitSlice
+             || blob.mozSlice
+        ).bind(blob);
+
+        var length = end - start;
+
+        // The old Blob.slice() was length-based (not end-based). Try the
+        // length version first, if the two calls are not equivalent.
+        if (length !== end) {
+
+            // If the result of the slice() call matches the expected length,
+            // trust that result. It must be correct.
+            var sliceResult = sliceImplementation(start, length);
+            if (sliceResult.size === length)
+                return sliceResult;
+
+        }
+
+        // Otherwise, use the most-recent standard: end-based slice()
+        return sliceImplementation(start, end);
+
+    };
+
+    /**
+     * Sends the contents of the given blob over the underlying stream.
+     *
+     * @param {Blob} blob
+     *     The blob to send.
+     */
+    this.sendBlob = function sendBlob(blob) {
+
+        var offset = 0;
+        var reader = new FileReader();
+
+        /**
+         * Reads the next chunk of the blob provided to
+         * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The chunk itself
+         * is read asynchronously, and will not be available until
+         * reader.onload fires.
+         *
+         * @private
+         */
+        var readNextChunk = function readNextChunk() {
+
+            // If no further chunks remain, inform of completion and stop
+            if (offset >= blob.size) {
+
+                // Fire completion event for completed blob
+                if (guacWriter.oncomplete)
+                    guacWriter.oncomplete(blob);
+
+                // No further chunks to read
+                return;
+
+            }
+
+            // Obtain reference to next chunk as a new blob
+            var chunk = slice(blob, offset, offset + arrayBufferWriter.blobLength);
+            offset += arrayBufferWriter.blobLength;
+
+            // Attempt to read the blob contents represented by the blob into
+            // a new array buffer
+            reader.readAsArrayBuffer(chunk);
+
+        };
+
+        // Send each chunk over the stream, continue reading the next chunk
+        reader.onload = function chunkLoadComplete() {
+
+            // Send the successfully-read chunk
+            arrayBufferWriter.sendData(reader.result);
+
+            // Continue sending more chunks after the latest chunk is
+            // acknowledged
+            arrayBufferWriter.onack = function sendMoreChunks(status) {
+
+                if (guacWriter.onack)
+                    guacWriter.onack(status);
+
+                // Abort transfer if an error occurs
+                if (status.isError())
+                    return;
+
+                // Inform of blob upload progress via progress events
+                if (guacWriter.onprogress)
+                    guacWriter.onprogress(blob, offset - arrayBufferWriter.blobLength);
+
+                // Queue the next chunk for reading
+                readNextChunk();
+
+            };
+
+        };
+
+        // If an error prevents further reading, inform of error and stop
+        reader.onerror = function chunkLoadFailed() {
+
+            // Fire error event, including the context of the error
+            if (guacWriter.onerror)
+                guacWriter.onerror(blob, offset, reader.error);
+
+        };
+
+        // Begin reading the first chunk
+        readNextChunk();
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function sendEnd() {
+        arrayBufferWriter.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     *
+     * @event
+     * @param {Guacamole.Status} status
+     *     The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Fired when an error occurs reading a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The transfer for the
+     * the given blob will cease, but the stream will remain open.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was being read when the error occurred.
+     *
+     * @param {Number} offset
+     *     The offset of the failed read attempt within the blob, in bytes.
+     *
+     * @param {DOMError} error
+     *     The error that occurred.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired for each successfully-read chunk of data as a blob is being sent
+     * via [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that is being read.
+     *
+     * @param {Number} offset
+     *     The offset of the read that just succeeded.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired when a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob} has finished being
+     * sent.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was sent.
+     */
+    this.oncomplete = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Client.js.html b/doc/1.3.0/guacamole-common-js/Client.js.html
new file mode 100644
index 0000000..96b401d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Client.js.html
@@ -0,0 +1,1764 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Client.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Client.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Guacamole protocol client. Given a {@link Guacamole.Tunnel},
+ * automatically handles incoming and outgoing Guacamole instructions via the
+ * provided tunnel, updating its display using one or more canvas elements.
+ * 
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel The tunnel to use to send and receive
+ *                                  Guacamole instructions.
+ */
+Guacamole.Client = function(tunnel) {
+
+    var guac_client = this;
+
+    var STATE_IDLE          = 0;
+    var STATE_CONNECTING    = 1;
+    var STATE_WAITING       = 2;
+    var STATE_CONNECTED     = 3;
+    var STATE_DISCONNECTING = 4;
+    var STATE_DISCONNECTED  = 5;
+
+    var currentState = STATE_IDLE;
+    
+    var currentTimestamp = 0;
+    var pingInterval = null;
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineCap = {
+        0: "butt",
+        1: "round",
+        2: "square"
+    };
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineJoin = {
+        0: "bevel",
+        1: "miter",
+        2: "round"
+    };
+
+    /**
+     * The underlying Guacamole display.
+     *
+     * @private
+     * @type {Guacamole.Display}
+     */
+    var display = new Guacamole.Display();
+
+    /**
+     * All available layers and buffers
+     *
+     * @private
+     * @type {Object.&lt;Number, (Guacamole.Display.VisibleLayer|Guacamole.Layer)>}
+     */
+    var layers = {};
+    
+    /**
+     * All audio players currently in use by the client. Initially, this will
+     * be empty, but audio players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.AudioPlayer>}
+     */
+    var audioPlayers = {};
+
+    /**
+     * All video players currently in use by the client. Initially, this will
+     * be empty, but video players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.VideoPlayer>}
+     */
+    var videoPlayers = {};
+
+    // No initial parsers
+    var parsers = [];
+
+    // No initial streams 
+    var streams = [];
+
+    /**
+     * All current objects. The index of each object is dictated by the
+     * Guacamole server.
+     *
+     * @private
+     * @type {Guacamole.Object[]}
+     */
+    var objects = [];
+
+    // Pool of available stream indices
+    var stream_indices = new Guacamole.IntegerPool();
+
+    // Array of allocated output streams by index
+    var output_streams = [];
+
+    function setState(state) {
+        if (state != currentState) {
+            currentState = state;
+            if (guac_client.onstatechange)
+                guac_client.onstatechange(currentState);
+        }
+    }
+
+    function isConnected() {
+        return currentState == STATE_CONNECTED
+            || currentState == STATE_WAITING;
+    }
+
+    /**
+     * Produces an opaque representation of Guacamole.Client state which can be
+     * later imported through a call to importState(). This object is
+     * effectively an independent, compressed snapshot of protocol and display
+     * state. Invoking this function implicitly flushes the display.
+     *
+     * @param {function} callback
+     *     Callback which should be invoked once the state object is ready. The
+     *     state object will be passed to the callback as the sole parameter.
+     *     This callback may be invoked immediately, or later as the display
+     *     finishes rendering and becomes ready.
+     */
+    this.exportState = function exportState(callback) {
+
+        // Start with empty state
+        var state = {
+            'currentState' : currentState,
+            'currentTimestamp' : currentTimestamp,
+            'layers' : {}
+        };
+
+        var layersSnapshot = {};
+
+        // Make a copy of all current layers (protocol state)
+        for (var key in layers) {
+            layersSnapshot[key] = layers[key];
+        }
+
+        // Populate layers once data is available (display state, requires flush)
+        display.flush(function populateLayers() {
+
+            // Export each defined layer/buffer
+            for (var key in layersSnapshot) {
+
+                var index = parseInt(key);
+                var layer = layersSnapshot[key];
+                var canvas = layer.toCanvas();
+
+                // Store layer/buffer dimensions
+                var exportLayer = {
+                    'width'  : layer.width,
+                    'height' : layer.height
+                };
+
+                // Store layer/buffer image data, if it can be generated
+                if (layer.width &amp;&amp; layer.height)
+                    exportLayer.url = canvas.toDataURL('image/png');
+
+                // Add layer properties if not a buffer nor the default layer
+                if (index > 0) {
+                    exportLayer.x = layer.x;
+                    exportLayer.y = layer.y;
+                    exportLayer.z = layer.z;
+                    exportLayer.alpha = layer.alpha;
+                    exportLayer.matrix = layer.matrix;
+                    exportLayer.parent = getLayerIndex(layer.parent);
+                }
+
+                // Store exported layer
+                state.layers[key] = exportLayer;
+
+            }
+
+            // Invoke callback now that the state is ready
+            callback(state);
+
+        });
+
+    };
+
+    /**
+     * Restores Guacamole.Client protocol and display state based on an opaque
+     * object from a prior call to exportState(). The Guacamole.Client instance
+     * used to export that state need not be the same as this instance.
+     *
+     * @param {Object} state
+     *     An opaque representation of Guacamole.Client state from a prior call
+     *     to exportState().
+     *
+     * @param {function} [callback]
+     *     The function to invoke when state has finished being imported. This
+     *     may happen immediately, or later as images within the provided state
+     *     object are loaded.
+     */
+    this.importState = function importState(state, callback) {
+
+        var key;
+        var index;
+
+        currentState = state.currentState;
+        currentTimestamp = state.currentTimestamp;
+
+        // Dispose of all layers
+        for (key in layers) {
+            index = parseInt(key);
+            if (index > 0)
+                display.dispose(layers[key]);
+        }
+
+        layers = {};
+
+        // Import state of each layer/buffer
+        for (key in state.layers) {
+
+            index = parseInt(key);
+
+            var importLayer = state.layers[key];
+            var layer = getLayer(index);
+
+            // Reset layer size
+            display.resize(layer, importLayer.width, importLayer.height);
+
+            // Initialize new layer if it has associated data
+            if (importLayer.url) {
+                display.setChannelMask(layer, Guacamole.Layer.SRC);
+                display.draw(layer, 0, 0, importLayer.url);
+            }
+
+            // Set layer-specific properties if not a buffer nor the default layer
+            if (index > 0 &amp;&amp; importLayer.parent >= 0) {
+
+                // Apply layer position and set parent
+                var parent = getLayer(importLayer.parent);
+                display.move(layer, parent, importLayer.x, importLayer.y, importLayer.z);
+
+                // Set layer transparency
+                display.shade(layer, importLayer.alpha);
+
+                // Apply matrix transform
+                var matrix = importLayer.matrix;
+                display.distort(layer,
+                    matrix[0], matrix[1], matrix[2],
+                    matrix[3], matrix[4], matrix[5]);
+
+            }
+
+        }
+
+        // Flush changes to display
+        display.flush(callback);
+
+    };
+
+    /**
+     * Returns the underlying display of this Guacamole.Client. The display
+     * contains an Element which can be added to the DOM, causing the
+     * display to become visible.
+     * 
+     * @return {Guacamole.Display} The underlying display of this
+     *                             Guacamole.Client.
+     */
+    this.getDisplay = function() {
+        return display;
+    };
+
+    /**
+     * Sends the current size of the screen.
+     * 
+     * @param {Number} width The width of the screen.
+     * @param {Number} height The height of the screen.
+     */
+    this.sendSize = function(width, height) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("size", width, height);
+
+    };
+
+    /**
+     * Sends a key event having the given properties as if the user
+     * pressed or released a key.
+     * 
+     * @param {Boolean} pressed Whether the key is pressed (true) or released
+     *                          (false).
+     * @param {Number} keysym The keysym of the key being pressed or released.
+     */
+    this.sendKeyEvent = function(pressed, keysym) {
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("key", keysym, pressed);
+    };
+
+    /**
+     * Sends a mouse event having the properties provided by the given mouse
+     * state.
+     * 
+     * @param {Guacamole.Mouse.State} mouseState The state of the mouse to send
+     *                                           in the mouse event.
+     */
+    this.sendMouseState = function(mouseState) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Update client-side cursor
+        display.moveCursor(
+            Math.floor(mouseState.x),
+            Math.floor(mouseState.y)
+        );
+
+        // Build mask
+        var buttonMask = 0;
+        if (mouseState.left)   buttonMask |= 1;
+        if (mouseState.middle) buttonMask |= 2;
+        if (mouseState.right)  buttonMask |= 4;
+        if (mouseState.up)     buttonMask |= 8;
+        if (mouseState.down)   buttonMask |= 16;
+
+        // Send message
+        tunnel.sendMessage("mouse", Math.floor(mouseState.x), Math.floor(mouseState.y), buttonMask);
+    };
+
+    /**
+     * Allocates an available stream index and creates a new
+     * Guacamole.OutputStream using that index, associating the resulting
+     * stream with this Guacamole.Client. Note that this stream will not yet
+     * exist as far as the other end of the Guacamole connection is concerned.
+     * Streams exist within the Guacamole protocol only when referenced by an
+     * instruction which creates the stream, such as a "clipboard", "file", or
+     * "pipe" instruction.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     A new Guacamole.OutputStream with a newly-allocated index and
+     *     associated with this Guacamole.Client.
+     */
+    this.createOutputStream = function createOutputStream() {
+
+        // Allocate index
+        var index = stream_indices.next();
+
+        // Return new stream
+        var stream = output_streams[index] = new Guacamole.OutputStream(guac_client, index);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new audio stream for writing, where audio data having the give
+     * mimetype will be sent along the returned stream. The instruction
+     * necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data that will be sent along the returned
+     *     stream.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created audio stream.
+     */
+    this.createAudioStream = function(mimetype) {
+
+        // Allocate and associate stream with audio metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("audio", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new file for writing, having the given index, mimetype and
+     * filename. The instruction necessary to create this stream will
+     * automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the file being sent.
+     * @param {String} filename The filename of the file being sent.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createFileStream = function(mimetype, filename) {
+
+        // Allocate and associate stream with file metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("file", stream.index, mimetype, filename);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new pipe for writing, having the given name and mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createPipeStream = function(mimetype, name) {
+
+        // Allocate and associate stream with pipe metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("pipe", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new clipboard object for writing, having the given mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createClipboardStream = function(mimetype) {
+
+        // Allocate and associate stream with clipboard metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("clipboard", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new argument value stream for writing, having the given
+     * parameter name and mimetype, requesting that the connection parameter
+     * with the given name be updated to the value described by the contents
+     * of the following stream. The instruction necessary to create this stream
+     * will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being sent.
+     *
+     * @param {String} name
+     *     The name of the connection parameter to attempt to update.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created argument value stream.
+     */
+    this.createArgumentValueStream = function createArgumentValueStream(mimetype, name) {
+
+        // Allocate and associate stream with argument value metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("argv", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Creates a new output stream associated with the given object and having
+     * the given mimetype and name. The legality of a mimetype and name is
+     * dictated by the object itself. The instruction necessary to create this
+     * stream will automatically be sent.
+     *
+     * @param {Number} index
+     *     The index of the object for which the output stream is being
+     *     created.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within the given object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of the given object.
+     */
+    this.createObjectOutputStream = function createObjectOutputStream(index, mimetype, name) {
+
+        // Allocate and ssociate stream with object metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("put", index, stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {Number} index
+     *     The index of the object from which the input stream is being
+     *     requested.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     */
+    this.requestObjectInputStream = function requestObjectInputStream(index, name) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("get", index, name);
+    };
+
+    /**
+     * Acknowledge receipt of a blob on the stream with the given index.
+     * 
+     * @param {Number} index The index of the stream associated with the
+     *                       received blob.
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(index, message, code) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("ack", index, message, code);
+    };
+
+    /**
+     * Given the index of a file, writes a blob of data to that file.
+     * 
+     * @param {Number} index The index of the file to write to.
+     * @param {String} data Base64-encoded data to write to the file.
+     */
+    this.sendBlob = function(index, data) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("blob", index, data);
+    };
+
+    /**
+     * Marks a currently-open stream as complete. The other end of the
+     * Guacamole connection will be notified via an "end" instruction that the
+     * stream is closed, and the index will be made available for reuse in
+     * future streams.
+     * 
+     * @param {Number} index
+     *     The index of the stream to end.
+     */
+    this.endStream = function(index) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Explicitly close stream by sending "end" instruction
+        tunnel.sendMessage("end", index);
+
+        // Free associated index and stream if they exist
+        if (output_streams[index]) {
+            stream_indices.free(index);
+            delete output_streams[index];
+        }
+
+    };
+
+    /**
+     * Fired whenever the state of this Guacamole.Client changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired when the remote client sends a name update.
+     * 
+     * @event
+     * @param {String} name The new name of this client.
+     */
+    this.onname = null;
+
+    /**
+     * Fired when an error is reported by the remote client, and the connection
+     * is being closed.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired when a audio stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive audio data from the server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data which will be received.
+     *
+     * @return {Guacamole.AudioPlayer}
+     *     An object which implements the Guacamole.AudioPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in audio players of the Guacamole client should be
+     *     used.
+     */
+    this.onaudio = null;
+
+    /**
+     * Fired when a video stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive video data from the server.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The destination layer on which the received video data should be
+     *     played. It is the responsibility of the Guacamole.VideoPlayer
+     *     implementation to play the received data within this layer.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the video data which will be received.
+     *
+     * @return {Guacamole.VideoPlayer}
+     *     An object which implements the Guacamole.VideoPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in video players of the Guacamole client should be
+     *     used.
+     */
+    this.onvideo = null;
+
+    /**
+     * Fired when the current value of a connection parameter is being exposed
+     * by the server.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive connection parameter data from the
+     *     server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be received.
+     *
+     * @param {String} name
+     *     The name of the connection parameter whose value is being exposed.
+     */
+    this.onargv = null;
+
+    /**
+     * Fired when the clipboard of the remote client is changing.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive
+     *                                       clipboard data from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     */
+    this.onclipboard = null;
+
+    /**
+     * Fired when a file stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the file received.
+     * @param {String} filename The name of the file received.
+     */
+    this.onfile = null;
+
+    /**
+     * Fired when a filesystem object is created. The object provided to this
+     * event handler will contain its own event handlers and functions for
+     * requesting and handling data.
+     *
+     * @event
+     * @param {Guacamole.Object} object
+     *     The created filesystem object.
+     *
+     * @param {String} name
+     *     The name of the filesystem.
+     */
+    this.onfilesystem = null;
+
+    /**
+     * Fired when a pipe stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data;
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     * @param {String} name The name of the pipe.
+     */
+    this.onpipe = null;
+    
+    /**
+     * Fired when a "required" instruction is received. A required instruction
+     * indicates that additional parameters are required for the connection to
+     * continue, such as user credentials.
+     * 
+     * @event
+     * @param {String[]} parameters
+     *      The names of the connection parameters that are required to be
+     *      provided for the connection to continue.
+     */
+    this.onrequired = null;
+
+    /**
+     * Fired whenever a sync instruction is received from the server, indicating
+     * that the server is finished processing any input from the client and
+     * has sent any results.
+     * 
+     * @event
+     * @param {Number} timestamp The timestamp associated with the sync
+     *                           instruction.
+     */
+    this.onsync = null;
+
+    /**
+     * Returns the layer with the given index, creating it if necessary.
+     * Positive indices refer to visible layers, an index of zero refers to
+     * the default layer, and negative indices refer to buffers.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the layer to retrieve.
+     *
+     * @return {Guacamole.Display.VisibleLayer|Guacamole.Layer}
+     *     The layer having the given index.
+     */
+    var getLayer = function getLayer(index) {
+
+        // Get layer, create if necessary
+        var layer = layers[index];
+        if (!layer) {
+
+            // Create layer based on index
+            if (index === 0)
+                layer = display.getDefaultLayer();
+            else if (index > 0)
+                layer = display.createLayer();
+            else
+                layer = display.createBuffer();
+                
+            // Add new layer
+            layers[index] = layer;
+
+        }
+
+        return layer;
+
+    };
+
+    /**
+     * Returns the index passed to getLayer() when the given layer was created.
+     * Positive indices refer to visible layers, an index of zero refers to the
+     * default layer, and negative indices refer to buffers.
+     *
+     * @param {Guacamole.Display.VisibleLayer|Guacamole.Layer} layer
+     *     The layer whose index should be determined.
+     *
+     * @returns {Number}
+     *     The index of the given layer, or null if no such layer is associated
+     *     with this client.
+     */
+    var getLayerIndex = function getLayerIndex(layer) {
+
+        // Avoid searching if there clearly is no such layer
+        if (!layer)
+            return null;
+
+        // Search through each layer, returning the index of the given layer
+        // once found
+        for (var key in layers) {
+            if (layer === layers[key])
+                return parseInt(key);
+        }
+
+        // Otherwise, no such index
+        return null;
+
+    };
+
+    function getParser(index) {
+
+        var parser = parsers[index];
+
+        // If parser not yet created, create it, and tie to the
+        // oninstruction handler of the tunnel.
+        if (parser == null) {
+            parser = parsers[index] = new Guacamole.Parser();
+            parser.oninstruction = tunnel.oninstruction;
+        }
+
+        return parser;
+
+    }
+
+    /**
+     * Handlers for all defined layer properties.
+     * @private
+     */
+    var layerPropertyHandlers = {
+
+        "miter-limit": function(layer, value) {
+            display.setMiterLimit(layer, parseFloat(value));
+        }
+
+    };
+    
+    /**
+     * Handlers for all instruction opcodes receivable by a Guacamole protocol
+     * client.
+     * @private
+     */
+    var instructionHandlers = {
+
+        "ack": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var reason = parameters[1];
+            var code = parseInt(parameters[2]);
+
+            // Get stream
+            var stream = output_streams[stream_index];
+            if (stream) {
+
+                // Signal ack if handler defined
+                if (stream.onack)
+                    stream.onack(new Guacamole.Status(code, reason));
+
+                // If code is an error, invalidate stream if not already
+                // invalidated by onack handler
+                if (code >= 0x0100 &amp;&amp; output_streams[stream_index] === stream) {
+                    stream_indices.free(stream_index);
+                    delete output_streams[stream_index];
+                }
+
+            }
+
+        },
+
+        "arc": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var radius = parseInt(parameters[3]);
+            var startAngle = parseFloat(parameters[4]);
+            var endAngle = parseFloat(parameters[5]);
+            var negative = parseInt(parameters[6]);
+
+            display.arc(layer, x, y, radius, startAngle, endAngle, negative != 0);
+
+        },
+
+        "argv": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream
+            if (guac_client.onargv) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onargv(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Receiving argument values unsupported", 0x0100);
+
+        },
+
+        "audio": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var audioPlayer = null;
+            if (guac_client.onaudio)
+                audioPlayer = guac_client.onaudio(stream, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!audioPlayer)
+                audioPlayer = Guacamole.AudioPlayer.getInstance(stream, mimetype);
+
+            // If we have successfully retrieved an audio player, send success response
+            if (audioPlayer) {
+                audioPlayers[stream_index] = audioPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        },
+
+        "blob": function(parameters) {
+
+            // Get stream 
+            var stream_index = parseInt(parameters[0]);
+            var data = parameters[1];
+            var stream = streams[stream_index];
+
+            // Write data
+            if (stream &amp;&amp; stream.onblob)
+                stream.onblob(data);
+
+        },
+
+        "body" : function handleBody(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            var streamIndex = parseInt(parameters[1]);
+            var mimetype = parameters[2];
+            var name = parameters[3];
+
+            // Create stream if handler defined
+            if (object &amp;&amp; object.onbody) {
+                var stream = streams[streamIndex] = new Guacamole.InputStream(guac_client, streamIndex);
+                object.onbody(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(streamIndex, "Receipt of body unsupported", 0x0100);
+
+        },
+
+        "cfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var r = parseInt(parameters[2]);
+            var g = parseInt(parameters[3]);
+            var b = parseInt(parameters[4]);
+            var a = parseInt(parameters[5]);
+
+            display.setChannelMask(layer, channelMask);
+            display.fillColor(layer, r, g, b, a);
+
+        },
+
+        "clip": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.clip(layer);
+
+        },
+
+        "clipboard": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            if (guac_client.onclipboard) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onclipboard(stream, mimetype);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Clipboard unsupported", 0x0100);
+
+        },
+
+        "close": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.close(layer);
+
+        },
+
+        "copy": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var channelMask = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            display.setChannelMask(dstL, channelMask);
+            display.copy(srcL, srcX, srcY, srcWidth, srcHeight, 
+                         dstL, dstX, dstY);
+
+        },
+
+        "cstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var cap = lineCap[parseInt(parameters[2])];
+            var join = lineJoin[parseInt(parameters[3])];
+            var thickness = parseInt(parameters[4]);
+            var r = parseInt(parameters[5]);
+            var g = parseInt(parameters[6]);
+            var b = parseInt(parameters[7]);
+            var a = parseInt(parameters[8]);
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeColor(layer, cap, join, thickness, r, g, b, a);
+
+        },
+
+        "cursor": function(parameters) {
+
+            var cursorHotspotX = parseInt(parameters[0]);
+            var cursorHotspotY = parseInt(parameters[1]);
+            var srcL = getLayer(parseInt(parameters[2]));
+            var srcX = parseInt(parameters[3]);
+            var srcY = parseInt(parameters[4]);
+            var srcWidth = parseInt(parameters[5]);
+            var srcHeight = parseInt(parameters[6]);
+
+            display.setCursor(cursorHotspotX, cursorHotspotY,
+                              srcL, srcX, srcY, srcWidth, srcHeight);
+
+        },
+
+        "curve": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var cp1x = parseInt(parameters[1]);
+            var cp1y = parseInt(parameters[2]);
+            var cp2x = parseInt(parameters[3]);
+            var cp2y = parseInt(parameters[4]);
+            var x = parseInt(parameters[5]);
+            var y = parseInt(parameters[6]);
+
+            display.curveTo(layer, cp1x, cp1y, cp2x, cp2y, x, y);
+
+        },
+
+        "disconnect" : function handleDisconnect(parameters) {
+
+            // Explicitly tear down connection
+            guac_client.disconnect();
+
+        },
+
+        "dispose": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+
+            // If visible layer, remove from parent
+            if (layer_index > 0) {
+
+                // Remove from parent
+                var layer = getLayer(layer_index);
+                display.dispose(layer);
+
+                // Delete reference
+                delete layers[layer_index];
+
+            }
+
+            // If buffer, just delete reference
+            else if (layer_index &lt; 0)
+                delete layers[layer_index];
+
+            // Attempting to dispose the root layer currently has no effect.
+
+        },
+
+        "distort": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.distort(layer, a, b, c, d, e, f);
+            }
+
+        },
+ 
+        "error": function(parameters) {
+
+            var reason = parameters[0];
+            var code = parseInt(parameters[1]);
+
+            // Call handler if defined
+            if (guac_client.onerror)
+                guac_client.onerror(new Guacamole.Status(code, reason));
+
+            guac_client.disconnect();
+
+        },
+
+        "end": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+
+            // Get stream
+            var stream = streams[stream_index];
+            if (stream) {
+
+                // Signal end of stream if handler defined
+                if (stream.onend)
+                    stream.onend();
+
+                // Invalidate stream
+                delete streams[stream_index];
+
+            }
+
+        },
+
+        "file": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var filename = parameters[2];
+
+            // Create stream 
+            if (guac_client.onfile) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onfile(stream, mimetype, filename);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "File transfer unsupported", 0x0100);
+
+        },
+
+        "filesystem" : function handleFilesystem(parameters) {
+
+            var objectIndex = parseInt(parameters[0]);
+            var name = parameters[1];
+
+            // Create object, if supported
+            if (guac_client.onfilesystem) {
+                var object = objects[objectIndex] = new Guacamole.Object(guac_client, objectIndex);
+                guac_client.onfilesystem(object, name);
+            }
+
+            // If unsupported, simply ignore the availability of the filesystem
+
+        },
+
+        "identity": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.setTransform(layer, 1, 0, 0, 1, 0, 0);
+
+        },
+
+        "img": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var channelMask = parseInt(parameters[1]);
+            var layer = getLayer(parseInt(parameters[2]));
+            var mimetype = parameters[3];
+            var x = parseInt(parameters[4]);
+            var y = parseInt(parameters[5]);
+
+            // Create stream
+            var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+
+            // Draw received contents once decoded
+            display.setChannelMask(layer, channelMask);
+            display.drawStream(layer, x, y, stream, mimetype);
+
+        },
+
+        "jpeg": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/jpeg;base64," + data);
+
+        },
+
+        "lfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.fillLayer(layer, srcLayer);
+
+        },
+
+        "line": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.lineTo(layer, x, y);
+
+        },
+
+        "lstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeLayer(layer, srcLayer);
+
+        },
+
+        "mouse" : function handleMouse(parameters) {
+
+            var x = parseInt(parameters[0]);
+            var y = parseInt(parameters[1]);
+
+            // Display and move software cursor to received coordinates
+            display.showCursor(true);
+            display.moveCursor(x, y);
+
+        },
+
+        "move": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var parent_index = parseInt(parameters[1]);
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var z = parseInt(parameters[4]);
+
+            // Only valid for non-default layers
+            if (layer_index > 0 &amp;&amp; parent_index >= 0) {
+                var layer = getLayer(layer_index);
+                var parent = getLayer(parent_index);
+                display.move(layer, parent, x, y, z);
+            }
+
+        },
+
+        "name": function(parameters) {
+            if (guac_client.onname) guac_client.onname(parameters[0]);
+        },
+
+        "nest": function(parameters) {
+            var parser = getParser(parseInt(parameters[0]));
+            parser.receive(parameters[1]);
+        },
+
+        "pipe": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream 
+            if (guac_client.onpipe) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onpipe(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Named pipes unsupported", 0x0100);
+
+        },
+
+        "png": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/png;base64," + data);
+
+        },
+
+        "pop": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.pop(layer);
+
+        },
+
+        "push": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.push(layer);
+
+        },
+ 
+        "rect": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var w = parseInt(parameters[3]);
+            var h = parseInt(parameters[4]);
+
+            display.rect(layer, x, y, w, h);
+
+        },
+                
+        "required": function required(parameters) {
+            if (guac_client.onrequired) guac_client.onrequired(parameters);
+        },
+        
+        "reset": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.reset(layer);
+
+        },
+        
+        "set": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var name = parameters[1];
+            var value = parameters[2];
+
+            // Call property handler if defined
+            var handler = layerPropertyHandlers[name];
+            if (handler)
+                handler(layer, value);
+
+        },
+
+        "shade": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var a = parseInt(parameters[1]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.shade(layer, a);
+            }
+
+        },
+
+        "size": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var layer = getLayer(layer_index);
+            var width = parseInt(parameters[1]);
+            var height = parseInt(parameters[2]);
+
+            display.resize(layer, width, height);
+
+        },
+        
+        "start": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.moveTo(layer, x, y);
+
+        },
+
+        "sync": function(parameters) {
+
+            var timestamp = parseInt(parameters[0]);
+
+            // Flush display, send sync when done
+            display.flush(function displaySyncComplete() {
+
+                // Synchronize all audio players
+                for (var index in audioPlayers) {
+                    var audioPlayer = audioPlayers[index];
+                    if (audioPlayer)
+                        audioPlayer.sync();
+                }
+
+                // Send sync response to server
+                if (timestamp !== currentTimestamp) {
+                    tunnel.sendMessage("sync", timestamp);
+                    currentTimestamp = timestamp;
+                }
+
+            });
+
+            // If received first update, no longer waiting.
+            if (currentState === STATE_WAITING)
+                setState(STATE_CONNECTED);
+
+            // Call sync handler if defined
+            if (guac_client.onsync)
+                guac_client.onsync(timestamp);
+
+        },
+
+        "transfer": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var function_index = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            /* SRC */
+            if (function_index === 0x3)
+                display.put(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY);
+
+            /* Anything else that isn't a NO-OP */
+            else if (function_index !== 0x5)
+                display.transfer(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY, Guacamole.Client.DefaultTransferFunction[function_index]);
+
+        },
+
+        "transform": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            display.transform(layer, a, b, c, d, e, f);
+
+        },
+
+        "undefine" : function handleUndefine(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            // Signal end of object definition
+            if (object &amp;&amp; object.onundefine)
+                object.onundefine();
+
+        },
+
+        "video": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var mimetype = parameters[2];
+
+            // Create stream
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var videoPlayer = null;
+            if (guac_client.onvideo)
+                videoPlayer = guac_client.onvideo(stream, layer, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!videoPlayer)
+                videoPlayer = Guacamole.VideoPlayer.getInstance(stream, layer, mimetype);
+
+            // If we have successfully retrieved an video player, send success response
+            if (videoPlayer) {
+                videoPlayers[stream_index] = videoPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        }
+
+    };
+
+    tunnel.oninstruction = function(opcode, parameters) {
+
+        var handler = instructionHandlers[opcode];
+        if (handler)
+            handler(parameters);
+
+    };
+
+    /**
+     * Sends a disconnect instruction to the server and closes the tunnel.
+     */
+    this.disconnect = function() {
+
+        // Only attempt disconnection not disconnected.
+        if (currentState != STATE_DISCONNECTED
+                &amp;&amp; currentState != STATE_DISCONNECTING) {
+
+            setState(STATE_DISCONNECTING);
+
+            // Stop ping
+            if (pingInterval)
+                window.clearInterval(pingInterval);
+
+            // Send disconnect message and disconnect
+            tunnel.sendMessage("disconnect");
+            tunnel.disconnect();
+            setState(STATE_DISCONNECTED);
+
+        }
+
+    };
+    
+    /**
+     * Connects the underlying tunnel of this Guacamole.Client, passing the
+     * given arbitrary data to the tunnel during the connection process.
+     *
+     * @param data Arbitrary connection data to be sent to the underlying
+     *             tunnel during the connection process.
+     * @throws {Guacamole.Status} If an error occurs during connection.
+     */
+    this.connect = function(data) {
+
+        setState(STATE_CONNECTING);
+
+        try {
+            tunnel.connect(data);
+        }
+        catch (status) {
+            setState(STATE_IDLE);
+            throw status;
+        }
+
+        // Ping every 5 seconds (ensure connection alive)
+        pingInterval = window.setInterval(function() {
+            tunnel.sendMessage("nop");
+        }, 5000);
+
+        setState(STATE_WAITING);
+    };
+
+};
+
+/**
+ * Map of all Guacamole binary raster operations to transfer functions.
+ * @private
+ */
+Guacamole.Client.DefaultTransferFunction = {
+
+    /* BLACK */
+    0x0: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0x00;
+    },
+
+    /* WHITE */
+    0xF: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0xFF;
+    },
+
+    /* SRC */
+    0x3: function (src, dst) {
+        dst.red   = src.red;
+        dst.green = src.green;
+        dst.blue  = src.blue;
+        dst.alpha = src.alpha;
+    },
+
+    /* DEST (no-op) */
+    0x5: function (src, dst) {
+        // Do nothing
+    },
+
+    /* Invert SRC */
+    0xC: function (src, dst) {
+        dst.red   = 0xFF &amp; ~src.red;
+        dst.green = 0xFF &amp; ~src.green;
+        dst.blue  = 0xFF &amp; ~src.blue;
+        dst.alpha =  src.alpha;
+    },
+    
+    /* Invert DEST */
+    0xA: function (src, dst) {
+        dst.red   = 0xFF &amp; ~dst.red;
+        dst.green = 0xFF &amp; ~dst.green;
+        dst.blue  = 0xFF &amp; ~dst.blue;
+    },
+
+    /* AND */
+    0x1: function (src, dst) {
+        dst.red   =  ( src.red   &amp;  dst.red);
+        dst.green =  ( src.green &amp;  dst.green);
+        dst.blue  =  ( src.blue  &amp;  dst.blue);
+    },
+
+    /* NAND */
+    0xE: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   &amp;  dst.red);
+        dst.green = 0xFF &amp; ~( src.green &amp;  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  &amp;  dst.blue);
+    },
+
+    /* OR */
+    0x7: function (src, dst) {
+        dst.red   =  ( src.red   |  dst.red);
+        dst.green =  ( src.green |  dst.green);
+        dst.blue  =  ( src.blue  |  dst.blue);
+    },
+
+    /* NOR */
+    0x8: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   |  dst.red);
+        dst.green = 0xFF &amp; ~( src.green |  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  |  dst.blue);
+    },
+
+    /* XOR */
+    0x6: function (src, dst) {
+        dst.red   =  ( src.red   ^  dst.red);
+        dst.green =  ( src.green ^  dst.green);
+        dst.blue  =  ( src.blue  ^  dst.blue);
+    },
+
+    /* XNOR */
+    0x9: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   ^  dst.red);
+        dst.green = 0xFF &amp; ~( src.green ^  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  ^  dst.blue);
+    },
+
+    /* AND inverted source */
+    0x4: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   &amp;  dst.red);
+        dst.green =  0xFF &amp; (~src.green &amp;  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  &amp;  dst.blue);
+    },
+
+    /* OR inverted source */
+    0xD: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   |  dst.red);
+        dst.green =  0xFF &amp; (~src.green |  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  |  dst.blue);
+    },
+
+    /* AND inverted destination */
+    0x2: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   &amp; ~dst.red);
+        dst.green =  0xFF &amp; ( src.green &amp; ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  &amp; ~dst.blue);
+    },
+
+    /* OR inverted destination */
+    0xB: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   | ~dst.red);
+        dst.green =  0xFF &amp; ( src.green | ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  | ~dst.blue);
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/DataURIReader.js.html b/doc/1.3.0/guacamole-common-js/DataURIReader.js.html
new file mode 100644
index 0000000..c7b096d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/DataURIReader.js.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: DataURIReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: DataURIReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * received blobs as a single data URI built over the course of the stream.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that data will be read from.
+ */
+Guacamole.DataURIReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.DataURIReader.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Current data URI.
+     *
+     * @private
+     * @type {String}
+     */
+    var uri = 'data:' + mimetype + ';base64,';
+
+    // Receive blobs as array buffers
+    stream.onblob = function dataURIReaderBlob(data) {
+
+        // Currently assuming data will ALWAYS be safe to simply append. This
+        // will not be true if the received base64 data encodes a number of
+        // bytes that isn't a multiple of three (as base64 expands in a ratio
+        // of exactly 3:4).
+        uri += data;
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function dataURIReaderEnd() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the data URI of all data received through the underlying stream
+     * thus far.
+     *
+     * @returns {String}
+     *     The data URI of all data received through the underlying stream thus
+     *     far.
+     */
+    this.getURI = function getURI() {
+        return uri;
+    };
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Display.js.html b/doc/1.3.0/guacamole-common-js/Display.js.html
new file mode 100644
index 0000000..2848fa5
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Display.js.html
@@ -0,0 +1,1620 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Display.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Display.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The Guacamole display. The display does not deal with the Guacamole
+ * protocol, and instead implements a set of graphical operations which
+ * embody the set of operations present in the protocol. The order operations
+ * are executed is guaranteed to be in the same order as their corresponding
+ * functions are called.
+ * 
+ * @constructor
+ */
+Guacamole.Display = function() {
+
+    /**
+     * Reference to this Guacamole.Display.
+     * @private
+     */
+    var guac_display = this;
+
+    var displayWidth = 0;
+    var displayHeight = 0;
+    var displayScale = 1;
+
+    // Create display
+    var display = document.createElement("div");
+    display.style.position = "relative";
+    display.style.width = displayWidth + "px";
+    display.style.height = displayHeight + "px";
+
+    // Ensure transformations on display originate at 0,0
+    display.style.transformOrigin =
+    display.style.webkitTransformOrigin =
+    display.style.MozTransformOrigin =
+    display.style.OTransformOrigin =
+    display.style.msTransformOrigin =
+        "0 0";
+
+    // Create default layer
+    var default_layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+
+    // Create cursor layer
+    var cursor = new Guacamole.Display.VisibleLayer(0, 0);
+    cursor.setChannelMask(Guacamole.Layer.SRC);
+
+    // Add default layer and cursor to display
+    display.appendChild(default_layer.getElement());
+    display.appendChild(cursor.getElement());
+
+    // Create bounding div 
+    var bounds = document.createElement("div");
+    bounds.style.position = "relative";
+    bounds.style.width = (displayWidth*displayScale) + "px";
+    bounds.style.height = (displayHeight*displayScale) + "px";
+
+    // Add display to bounds
+    bounds.appendChild(display);
+
+    /**
+     * The X coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotX = 0;
+
+    /**
+     * The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotY = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorX = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorY = 0;
+
+    /**
+     * Fired when the default layer (and thus the entire Guacamole display)
+     * is resized.
+     * 
+     * @event
+     * @param {Number} width The new width of the Guacamole display.
+     * @param {Number} height The new height of the Guacamole display.
+     */
+    this.onresize = null;
+
+    /**
+     * Fired whenever the local cursor image is changed. This can be used to
+     * implement special handling of the client-side cursor, or to override
+     * the default use of a software cursor layer.
+     * 
+     * @event
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     */
+    this.oncursor = null;
+
+    /**
+     * The queue of all pending Tasks. Tasks will be run in order, with new
+     * tasks added at the end of the queue and old tasks removed from the
+     * front of the queue (FIFO). These tasks will eventually be grouped
+     * into a Frame.
+     * @private
+     * @type {Task[]}
+     */
+    var tasks = [];
+
+    /**
+     * The queue of all frames. Each frame is a pairing of an array of tasks
+     * and a callback which must be called when the frame is rendered.
+     * @private
+     * @type {Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * Flushes all pending frames.
+     * @private
+     */
+    function __flush_frames() {
+
+        var rendered_frames = 0;
+
+        // Draw all pending frames, if ready
+        while (rendered_frames &lt; frames.length) {
+
+            var frame = frames[rendered_frames];
+            if (!frame.isReady())
+                break;
+
+            frame.flush();
+            rendered_frames++;
+
+        } 
+
+        // Remove rendered frames from array
+        frames.splice(0, rendered_frames);
+
+    }
+
+    /**
+     * An ordered list of tasks which must be executed atomically. Once
+     * executed, an associated (and optional) callback will be called.
+     *
+     * @private
+     * @constructor
+     * @param {function} callback The function to call when this frame is
+     *                            rendered.
+     * @param {Task[]} tasks The set of tasks which must be executed to render
+     *                       this frame.
+     */
+    function Frame(callback, tasks) {
+
+        /**
+         * Returns whether this frame is ready to be rendered. This function
+         * returns true if and only if ALL underlying tasks are unblocked.
+         * 
+         * @returns {Boolean} true if all underlying tasks are unblocked,
+         *                    false otherwise.
+         */
+        this.isReady = function() {
+
+            // Search for blocked tasks
+            for (var i=0; i &lt; tasks.length; i++) {
+                if (tasks[i].blocked)
+                    return false;
+            }
+
+            // If no blocked tasks, the frame is ready
+            return true;
+
+        };
+
+        /**
+         * Renders this frame, calling the associated callback, if any, after
+         * the frame is complete. This function MUST only be called when no
+         * blocked tasks exist. Calling this function with blocked tasks
+         * will result in undefined behavior.
+         */
+        this.flush = function() {
+
+            // Draw all pending tasks.
+            for (var i=0; i &lt; tasks.length; i++)
+                tasks[i].execute();
+
+            // Call callback
+            if (callback) callback();
+
+        };
+
+    }
+
+    /**
+     * A container for an task handler. Each operation which must be ordered
+     * is associated with a Task that goes into a task queue. Tasks in this
+     * queue are executed in order once their handlers are set, while Tasks 
+     * without handlers block themselves and any following Tasks from running.
+     *
+     * @constructor
+     * @private
+     * @param {function} taskHandler The function to call when this task 
+     *                               runs, if any.
+     * @param {boolean} blocked Whether this task should start blocked.
+     */
+    function Task(taskHandler, blocked) {
+       
+        var task = this;
+       
+        /**
+         * Whether this Task is blocked.
+         * 
+         * @type {boolean}
+         */
+        this.blocked = blocked;
+
+        /**
+         * Unblocks this Task, allowing it to run.
+         */
+        this.unblock = function() {
+            if (task.blocked) {
+                task.blocked = false;
+                __flush_frames();
+            }
+        };
+
+        /**
+         * Calls the handler associated with this task IMMEDIATELY. This
+         * function does not track whether this task is marked as blocked.
+         * Enforcing the blocked status of tasks is up to the caller.
+         */
+        this.execute = function() {
+            if (taskHandler) taskHandler();
+        };
+
+    }
+
+    /**
+     * Schedules a task for future execution. The given handler will execute
+     * immediately after all previous tasks upon frame flush, unless this
+     * task is blocked. If any tasks is blocked, the entire frame will not
+     * render (and no tasks within will execute) until all tasks are unblocked.
+     * 
+     * @private
+     * @param {function} handler The function to call when possible, if any.
+     * @param {boolean} blocked Whether the task should start blocked.
+     * @returns {Task} The Task created and added to the queue for future
+     *                 running.
+     */
+    function scheduleTask(handler, blocked) {
+        var task = new Task(handler, blocked);
+        tasks.push(task);
+        return task;
+    }
+
+    /**
+     * Returns the element which contains the Guacamole display.
+     * 
+     * @return {Element} The element containing the Guacamole display.
+     */
+    this.getElement = function() {
+        return bounds;
+    };
+
+    /**
+     * Returns the width of this display.
+     * 
+     * @return {Number} The width of this display;
+     */
+    this.getWidth = function() {
+        return displayWidth;
+    };
+
+    /**
+     * Returns the height of this display.
+     * 
+     * @return {Number} The height of this display;
+     */
+    this.getHeight = function() {
+        return displayHeight;
+    };
+
+    /**
+     * Returns the default layer of this display. Each Guacamole display always
+     * has at least one layer. Other layers can optionally be created within
+     * this layer, but the default layer cannot be removed and is the absolute
+     * ancestor of all other layers.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The default layer.
+     */
+    this.getDefaultLayer = function() {
+        return default_layer;
+    };
+
+    /**
+     * Returns the cursor layer of this display. Each Guacamole display contains
+     * a layer for the image of the mouse cursor. This layer is a special case
+     * and exists above all other layers, similar to the hardware mouse cursor.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The cursor layer.
+     */
+    this.getCursorLayer = function() {
+        return cursor;
+    };
+
+    /**
+     * Creates a new layer. The new layer will be a direct child of the default
+     * layer, but can be moved to be a child of any other layer. Layers returned
+     * by this function are visible.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The newly-created layer.
+     */
+    this.createLayer = function() {
+        var layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+        layer.move(default_layer, 0, 0, 0);
+        return layer;
+    };
+
+    /**
+     * Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+     * are implemented in the same manner as layers, but do not provide the
+     * same nesting semantics.
+     * 
+     * @return {Guacamole.Layer} The newly-created buffer.
+     */
+    this.createBuffer = function() {
+        var buffer = new Guacamole.Layer(0, 0);
+        buffer.autosize = 1;
+        return buffer;
+    };
+
+    /**
+     * Flush all pending draw tasks, if possible, as a new frame. If the entire
+     * frame is not ready, the flush will wait until all required tasks are
+     * unblocked.
+     * 
+     * @param {function} callback The function to call when this frame is
+     *                            flushed. This may happen immediately, or
+     *                            later when blocked tasks become unblocked.
+     */
+    this.flush = function(callback) {
+
+        // Add frame, reset tasks
+        frames.push(new Frame(callback, tasks));
+        tasks = [];
+
+        // Attempt flush
+        __flush_frames();
+
+    };
+
+    /**
+     * Sets the hotspot and image of the mouse cursor displayed within the
+     * Guacamole display.
+     * 
+     * @param {Number} hotspotX The X coordinate of the cursor hotspot.
+     * @param {Number} hotspotY The Y coordinate of the cursor hotspot.
+     * @param {Guacamole.Layer} layer The source layer containing the data which
+     *                                should be used as the mouse cursor image.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      layer's coordinate space to copy data from.
+
+     */
+    this.setCursor = function(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch) {
+        scheduleTask(function __display_set_cursor() {
+
+            // Set hotspot
+            guac_display.cursorHotspotX = hotspotX;
+            guac_display.cursorHotspotY = hotspotY;
+
+            // Reset cursor size
+            cursor.resize(srcw, srch);
+
+            // Draw cursor to cursor layer
+            cursor.copy(layer, srcx, srcy, srcw, srch, 0, 0);
+            guac_display.moveCursor(guac_display.cursorX, guac_display.cursorY);
+
+            // Fire cursor change event
+            if (guac_display.oncursor)
+                guac_display.oncursor(cursor.toCanvas(), hotspotX, hotspotY);
+
+        });
+    };
+
+    /**
+     * Sets whether the software-rendered cursor is shown. This cursor differs
+     * from the hardware cursor in that it is built into the Guacamole.Display,
+     * and relies on its own Guacamole layer to render.
+     *
+     * @param {Boolean} [shown=true] Whether to show the software cursor.
+     */
+    this.showCursor = function(shown) {
+
+        var element = cursor.getElement();
+        var parent = element.parentNode;
+
+        // Remove from DOM if hidden
+        if (shown === false) {
+            if (parent)
+                parent.removeChild(element);
+        }
+
+        // Otherwise, ensure cursor is child of display
+        else if (parent !== display)
+            display.appendChild(element);
+
+    };
+
+    /**
+     * Sets the location of the local cursor to the given coordinates. For the
+     * sake of responsiveness, this function performs its action immediately.
+     * Cursor motion is not maintained within atomic frames.
+     * 
+     * @param {Number} x The X coordinate to move the cursor to.
+     * @param {Number} y The Y coordinate to move the cursor to.
+     */
+    this.moveCursor = function(x, y) {
+
+        // Move cursor layer
+        cursor.translate(x - guac_display.cursorHotspotX,
+                         y - guac_display.cursorHotspotY);
+
+        // Update stored position
+        guac_display.cursorX = x;
+        guac_display.cursorY = y;
+
+    };
+
+    /**
+     * Changes the size of the given Layer to the given width and height.
+     * Resizing is only attempted if the new size provided is actually different
+     * from the current size.
+     * 
+     * @param {Guacamole.Layer} layer The layer to resize.
+     * @param {Number} width The new width.
+     * @param {Number} height The new height.
+     */
+    this.resize = function(layer, width, height) {
+        scheduleTask(function __display_resize() {
+
+            layer.resize(width, height);
+
+            // Resize display if default layer is resized
+            if (layer === default_layer) {
+
+                // Update (set) display size
+                displayWidth = width;
+                displayHeight = height;
+                display.style.width = displayWidth + "px";
+                display.style.height = displayHeight + "px";
+
+                // Update bounds size
+                bounds.style.width = (displayWidth*displayScale) + "px";
+                bounds.style.height = (displayHeight*displayScale) + "px";
+
+                // Notify of resize
+                if (guac_display.onresize)
+                    guac_display.onresize(width, height);
+
+            }
+
+        });
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Guacamole.Layer} layer
+     *     The layer to draw upon.
+     *
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y 
+     *     The destination Y coordinate.
+     *
+     * @param {CanvasImageSource} image
+     *     The image to draw. Note that this not a URL.
+     */
+    this.drawImage = function(layer, x, y, image) {
+        scheduleTask(function __display_drawImage() {
+            layer.drawImage(x, y, image);
+        });
+    };
+
+    /**
+     * Draws the image contained within the specified Blob at the given
+     * coordinates. The Blob specified must already be populated with image
+     * data.
+     *
+     * @param {Guacamole.Layer} layer
+     *     The layer to draw upon.
+     *
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y
+     *     The destination Y coordinate.
+     *
+     * @param {Blob} blob
+     *     The Blob containing the image data to draw.
+     */
+    this.drawBlob = function(layer, x, y, blob) {
+
+        var task;
+
+        // Prefer createImageBitmap() over blob URLs if available
+        if (window.createImageBitmap) {
+
+            var bitmap;
+
+            // Draw image once loaded
+            task = scheduleTask(function drawImageBitmap() {
+                layer.drawImage(x, y, bitmap);
+            }, true);
+
+            // Load image from provided blob
+            window.createImageBitmap(blob).then(function bitmapLoaded(decoded) {
+                bitmap = decoded;
+                task.unblock();
+            });
+
+        }
+
+        // Use blob URLs and the Image object if createImageBitmap() is
+        // unavailable
+        else {
+
+            // Create URL for blob
+            var url = URL.createObjectURL(blob);
+
+            // Draw and free blob URL when ready
+            task = scheduleTask(function __display_drawBlob() {
+
+                // Draw the image only if it loaded without errors
+                if (image.width &amp;&amp; image.height)
+                    layer.drawImage(x, y, image);
+
+                // Blob URL no longer needed
+                URL.revokeObjectURL(url);
+
+            }, true);
+
+            // Load image from URL
+            var image = new Image();
+            image.onload = task.unblock;
+            image.onerror = task.unblock;
+            image.src = url;
+
+        }
+
+    };
+
+    /**
+     * Draws the image within the given stream at the given coordinates. The
+     * image will be loaded automatically, and this and any future operations
+     * will wait for the image to finish loading. This function will
+     * automatically choose an approriate method for reading and decoding the
+     * given image stream, and should be preferred for received streams except
+     * where manual decoding of the stream is unavoidable.
+     *
+     * @param {Guacamole.Layer} layer
+     *     The layer to draw upon.
+     *
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y
+     *     The destination Y coordinate.
+     *
+     * @param {Guacamole.InputStream} stream
+     *     The stream along which image data will be received.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the image within the stream.
+     */
+    this.drawStream = function drawStream(layer, x, y, stream, mimetype) {
+
+        // If createImageBitmap() is available, load the image as a blob so
+        // that function can be used
+        if (window.createImageBitmap) {
+            var reader = new Guacamole.BlobReader(stream, mimetype);
+            reader.onend = function drawImageBlob() {
+                guac_display.drawBlob(layer, x, y, reader.getBlob());
+            };
+        }
+
+        // Lacking createImageBitmap(), fall back to data URIs and the Image
+        // object
+        else {
+            var reader = new Guacamole.DataURIReader(stream, mimetype);
+            reader.onend = function drawImageDataURI() {
+                guac_display.draw(layer, x, y, reader.getURI());
+            };
+        }
+
+    };
+
+    /**
+     * Draws the image at the specified URL at the given coordinates. The image
+     * will be loaded automatically, and this and any future operations will
+     * wait for the image to finish loading.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {String} url The URL of the image to draw.
+     */
+    this.draw = function(layer, x, y, url) {
+
+        var task = scheduleTask(function __display_draw() {
+
+            // Draw the image only if it loaded without errors
+            if (image.width &amp;&amp; image.height)
+                layer.drawImage(x, y, image);
+
+        }, true);
+
+        var image = new Image();
+        image.onload = task.unblock;
+        image.onerror = task.unblock;
+        image.src = url;
+
+    };
+
+    /**
+     * Plays the video at the specified URL within this layer. The video
+     * will be loaded automatically, and this and any future operations will
+     * wait for the video to finish loading. Future operations will not be
+     * executed until the video finishes playing.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} mimetype The mimetype of the video to play.
+     * @param {Number} duration The duration of the video in milliseconds.
+     * @param {String} url The URL of the video to play.
+     */
+    this.play = function(layer, mimetype, duration, url) {
+
+        // Start loading the video
+        var video = document.createElement("video");
+        video.type = mimetype;
+        video.src = url;
+
+        // Start copying frames when playing
+        video.addEventListener("play", function() {
+            
+            function render_callback() {
+                layer.drawImage(0, 0, video);
+                if (!video.ended)
+                    window.setTimeout(render_callback, 20);
+            }
+            
+            render_callback();
+            
+        }, false);
+
+        scheduleTask(video.play);
+
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction) {
+        scheduleTask(function __display_transfer() {
+            dstLayer.transfer(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction);
+        });
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_put() {
+            dstLayer.put(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_copy() {
+            dstLayer.copy(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(layer, x, y) {
+        scheduleTask(function __display_moveTo() {
+            layer.moveTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(layer, x, y) {
+        scheduleTask(function __display_lineTo() {
+            layer.lineTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(layer, x, y, radius, startAngle, endAngle, negative) {
+        scheduleTask(function __display_arc() {
+            layer.arc(x, y, radius, startAngle, endAngle, negative);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(layer, cp1x, cp1y, cp2x, cp2y, x, y) {
+        scheduleTask(function __display_curveTo() {
+            layer.curveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        });
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.close = function(layer) {
+        scheduleTask(function __display_close() {
+            layer.close();
+        });
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(layer, x, y, w, h) {
+        scheduleTask(function __display_rect() {
+            layer.rect(x, y, w, h);
+        });
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to affect.
+     */
+    this.clip = function(layer) {
+        scheduleTask(function __display_clip() {
+            layer.clip();
+        });
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(layer, cap, join, thickness, r, g, b, a) {
+        scheduleTask(function __display_strokeColor() {
+            layer.strokeColor(cap, join, thickness, r, g, b, a);
+        });
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(layer, r, g, b, a) {
+        scheduleTask(function __display_fillColor() {
+            layer.fillColor(r, g, b, a);
+        });
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(layer, cap, join, thickness, srcLayer) {
+        scheduleTask(function __display_strokeLayer() {
+            layer.strokeLayer(cap, join, thickness, srcLayer);
+        });
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(layer, srcLayer) {
+        scheduleTask(function __display_fillLayer() {
+            layer.fillLayer(srcLayer);
+        });
+    };
+
+    /**
+     * Push current layer state onto stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.push = function(layer) {
+        scheduleTask(function __display_push() {
+            layer.push();
+        });
+    };
+
+    /**
+     * Pop layer state off stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.pop = function(layer) {
+        scheduleTask(function __display_pop() {
+            layer.pop();
+        });
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.reset = function(layer) {
+        scheduleTask(function __display_reset() {
+            layer.reset();
+        });
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_setTransform() {
+            layer.setTransform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_transform() {
+            layer.transform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(layer, mask) {
+        scheduleTask(function __display_setChannelMask() {
+            layer.setChannelMask(mask);
+        });
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(layer, limit) {
+        scheduleTask(function __display_setMiterLimit() {
+            layer.setMiterLimit(limit);
+        });
+    };
+
+    /**
+     * Removes the given layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being removed from its parent.
+     */
+    this.dispose = function dispose(layer) {
+        scheduleTask(function disposeLayer() {
+            layer.dispose();
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix) to the given layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being distorted.
+     *
+     * @param {Number} a
+     *     The first value in the affine transform's matrix.
+     *
+     * @param {Number} b
+     *     The second value in the affine transform's matrix.
+     *
+     * @param {Number} c
+     *     The third value in the affine transform's matrix.
+     *
+     * @param {Number} d
+     *     The fourth value in the affine transform's matrix.
+     *
+     * @param {Number} e
+     *     The fifth value in the affine transform's matrix.
+     *
+     * @param {Number} f
+     *     The sixth value in the affine transform's matrix.
+     */
+    this.distort = function distort(layer, a, b, c, d, e, f) {
+        scheduleTask(function distortLayer() {
+            layer.distort(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Moves the upper-left corner of the given layer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents the layer
+     * to the given parent layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being moved.
+     *
+     * @param {Guacamole.Display.VisibleLayer} parent
+     *     The parent to set.
+     *
+     * @param {Number} x
+     *     The X coordinate to move to.
+     *
+     * @param {Number} y
+     *     The Y coordinate to move to.
+     *
+     * @param {Number} z
+     *     The Z coordinate to move to.
+     */
+    this.move = function move(layer, parent, x, y, z) {
+        scheduleTask(function moveLayer() {
+            layer.move(parent, x, y, z);
+        });
+    };
+
+    /**
+     * Sets the opacity of the given layer to the given value, where 255 is
+     * fully opaque and 0 is fully transparent.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer whose opacity should be set.
+     *
+     * @param {Number} alpha
+     *     The opacity to set.
+     */
+    this.shade = function shade(layer, alpha) {
+        scheduleTask(function shadeLayer() {
+            layer.shade(alpha);
+        });
+    };
+
+    /**
+     * Sets the scale of the client display element such that it renders at
+     * a relatively smaller or larger size, without affecting the true
+     * resolution of the display.
+     *
+     * @param {Number} scale The scale to resize to, where 1.0 is normal
+     *                       size (1:1 scale).
+     */
+    this.scale = function(scale) {
+
+        display.style.transform =
+        display.style.WebkitTransform =
+        display.style.MozTransform =
+        display.style.OTransform =
+        display.style.msTransform =
+
+            "scale(" + scale + "," + scale + ")";
+
+        displayScale = scale;
+
+        // Update bounds size
+        bounds.style.width = (displayWidth*displayScale) + "px";
+        bounds.style.height = (displayHeight*displayScale) + "px";
+
+    };
+
+    /**
+     * Returns the scale of the display.
+     *
+     * @return {Number} The scale of the display.
+     */
+    this.getScale = function() {
+        return displayScale;
+    };
+
+    /**
+     * Returns a canvas element containing the entire display, with all child
+     * layers composited within.
+     *
+     * @return {HTMLCanvasElement} A new canvas element containing a copy of
+     *                             the display.
+     */
+    this.flatten = function() {
+       
+        // Get destination canvas
+        var canvas = document.createElement("canvas");
+        canvas.width = default_layer.width;
+        canvas.height = default_layer.height;
+
+        var context = canvas.getContext("2d");
+
+        // Returns sorted array of children
+        function get_children(layer) {
+
+            // Build array of children
+            var children = [];
+            for (var index in layer.children)
+                children.push(layer.children[index]);
+
+            // Sort
+            children.sort(function children_comparator(a, b) {
+
+                // Compare based on Z order
+                var diff = a.z - b.z;
+                if (diff !== 0)
+                    return diff;
+
+                // If Z order identical, use document order
+                var a_element = a.getElement();
+                var b_element = b.getElement();
+                var position = b_element.compareDocumentPosition(a_element);
+
+                if (position &amp; Node.DOCUMENT_POSITION_PRECEDING) return -1;
+                if (position &amp; Node.DOCUMENT_POSITION_FOLLOWING) return  1;
+
+                // Otherwise, assume same
+                return 0;
+
+            });
+
+            // Done
+            return children;
+
+        }
+
+        // Draws the contents of the given layer at the given coordinates
+        function draw_layer(layer, x, y) {
+
+            // Draw layer
+            if (layer.width > 0 &amp;&amp; layer.height > 0) {
+
+                // Save and update alpha
+                var initial_alpha = context.globalAlpha;
+                context.globalAlpha *= layer.alpha / 255.0;
+
+                // Copy data
+                context.drawImage(layer.getCanvas(), x, y);
+
+                // Draw all children
+                var children = get_children(layer);
+                for (var i=0; i&lt;children.length; i++) {
+                    var child = children[i];
+                    draw_layer(child, x + child.x, y + child.y);
+                }
+
+                // Restore alpha
+                context.globalAlpha = initial_alpha;
+
+            }
+
+        }
+
+        // Draw default layer and all children
+        draw_layer(default_layer, 0, 0);
+
+        // Return new canvas copy
+        return canvas;
+        
+    };
+
+};
+
+/**
+ * Simple container for Guacamole.Layer, allowing layers to be easily
+ * repositioned and nested. This allows certain operations to be accelerated
+ * through DOM manipulation, rather than raster operations.
+ * 
+ * @constructor
+ * @augments Guacamole.Layer
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Display.VisibleLayer = function(width, height) {
+
+    Guacamole.Layer.apply(this, [width, height]);
+
+    /**
+     * Reference to this layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * Identifier which uniquely identifies this layer. This is COMPLETELY
+     * UNRELATED to the index of the underlying layer, which is specific
+     * to the Guacamole protocol, and not relevant at this level.
+     * 
+     * @private
+     * @type {Number}
+     */
+    this.__unique_id = Guacamole.Display.VisibleLayer.__next_id++;
+
+    /**
+     * The opacity of the layer container, where 255 is fully opaque and 0 is
+     * fully transparent.
+     */
+    this.alpha = 0xFF;
+
+    /**
+     * X coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.x = 0;
+
+    /**
+     * Y coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.y = 0;
+
+    /**
+     * Z stacking order of this layer relative to other sibling layers.
+     * @type {Number}
+     */
+    this.z = 0;
+
+    /**
+     * The affine transformation applied to this layer container. Each element
+     * corresponds to a value from the transformation matrix, with the first
+     * three values being the first row, and the last three values being the
+     * second row. There are six values total.
+     * 
+     * @type {Number[]}
+     */
+    this.matrix = [1, 0, 0, 1, 0, 0];
+
+    /**
+     * The parent layer container of this layer, if any.
+     * @type {Guacamole.Display.VisibleLayer}
+     */
+    this.parent = null;
+
+    /**
+     * Set of all children of this layer, indexed by layer index. This object
+     * will have one property per child.
+     */
+    this.children = {};
+
+    // Set layer position
+    var canvas = layer.getCanvas();
+    canvas.style.position = "absolute";
+    canvas.style.left = "0px";
+    canvas.style.top = "0px";
+
+    // Create div with given size
+    var div = document.createElement("div");
+    div.appendChild(canvas);
+    div.style.width = width + "px";
+    div.style.height = height + "px";
+    div.style.position = "absolute";
+    div.style.left = "0px";
+    div.style.top = "0px";
+    div.style.overflow = "hidden";
+
+    /**
+     * Superclass resize() function.
+     * @private
+     */
+    var __super_resize = this.resize;
+
+    this.resize = function(width, height) {
+
+        // Resize containing div
+        div.style.width = width + "px";
+        div.style.height = height + "px";
+
+        __super_resize(width, height);
+
+    };
+  
+    /**
+     * Returns the element containing the canvas and any other elements
+     * associated with this layer.
+     * @returns {Element} The element containing this layer's canvas.
+     */
+    this.getElement = function() {
+        return div;
+    };
+
+    /**
+     * The translation component of this layer's transform.
+     * @private
+     */
+    var translate = "translate(0px, 0px)"; // (0, 0)
+
+    /**
+     * The arbitrary matrix component of this layer's transform.
+     * @private
+     */
+    var matrix = "matrix(1, 0, 0, 1, 0, 0)"; // Identity
+
+    /**
+     * Moves the upper-left corner of this layer to the given X and Y
+     * coordinate.
+     * 
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     */
+    this.translate = function(x, y) {
+
+        layer.x = x;
+        layer.y = y;
+
+        // Generate translation
+        translate = "translate("
+                        + x + "px,"
+                        + y + "px)";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+    /**
+     * Moves the upper-left corner of this VisibleLayer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents this VisibleLayer
+     * to the given VisibleLayer.
+     * 
+     * @param {Guacamole.Display.VisibleLayer} parent The parent to set.
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     * @param {Number} z The Z coordinate to move to.
+     */
+    this.move = function(parent, x, y, z) {
+
+        // Set parent if necessary
+        if (layer.parent !== parent) {
+
+            // Maintain relationship
+            if (layer.parent)
+                delete layer.parent.children[layer.__unique_id];
+            layer.parent = parent;
+            parent.children[layer.__unique_id] = layer;
+
+            // Reparent element
+            var parent_element = parent.getElement();
+            parent_element.appendChild(div);
+
+        }
+
+        // Set location
+        layer.translate(x, y);
+        layer.z = z;
+        div.style.zIndex = z;
+
+    };
+
+    /**
+     * Sets the opacity of this layer to the given value, where 255 is fully
+     * opaque and 0 is fully transparent.
+     * 
+     * @param {Number} a The opacity to set.
+     */
+    this.shade = function(a) {
+        layer.alpha = a;
+        div.style.opacity = a/255.0;
+    };
+
+    /**
+     * Removes this layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     */
+    this.dispose = function() {
+
+        // Remove from parent container
+        if (layer.parent) {
+            delete layer.parent.children[layer.__unique_id];
+            layer.parent = null;
+        }
+
+        // Remove from parent element
+        if (div.parentNode)
+            div.parentNode.removeChild(div);
+        
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.distort = function(a, b, c, d, e, f) {
+
+        // Store matrix
+        layer.matrix = [a, b, c, d, e, f];
+
+        // Generate matrix transformation
+        matrix =
+
+            /* a c e
+             * b d f
+             * 0 0 1
+             */
+    
+            "matrix(" + a + "," + b + "," + c + "," + d + "," + e + "," + f + ")";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+};
+
+/**
+ * The next identifier to be assigned to the layer container. This identifier
+ * uniquely identifies each VisibleLayer, but is unrelated to the index of
+ * the layer, which exists at the protocol/client level only.
+ * 
+ * @private
+ * @type {Number}
+ */
+Guacamole.Display.VisibleLayer.__next_id = 0;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferReader.html b/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
new file mode 100644
index 0000000..bb9f54c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferReader"><span class="type-signature"></span>new ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly received packets as array buffers. Note that this object will
+overwrite any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ondata">ondata</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>buffer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line74">line 74</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html b/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
new file mode 100644
index 0000000..99a91c8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
@@ -0,0 +1,766 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferWriter"><span class="type-signature"></span>new ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with arbitrary
+binary data, supplied as ArrayBuffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".DEFAULT_BLOB_LENGTH"><span class="type-signature">(static, constant) </span>DEFAULT_BLOB_LENGTH<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The default maximum blob length for new Guacamole.ArrayBufferWriter
+instances.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blobLength"><span class="type-signature"></span>blobLength<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+in bytes. Data sent via
+<a href="Guacamole.ArrayBufferWriter.html#sendData">sendData()</a> which exceeds
+this length will be split into multiple blobs. As the Guacamole protocol
+limits the maximum size of any instruction or instruction element to
+8192 bytes, and the contents of blobs will be base64-encoded, this value
+should only be increased with extreme caution.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li><a href="Guacamole.ArrayBufferWriter.html#.DEFAULT_BLOB_LENGTH">Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH</a></li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendData"><span class="type-signature"></span>sendData<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+|
+
+<span class="param-type">TypedArray</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line83">line 83</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.AudioContextFactory.html b/doc/1.3.0/guacamole-common-js/Guacamole.AudioContextFactory.html
new file mode 100644
index 0000000..408f4c3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.AudioContextFactory.html
@@ -0,0 +1,343 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: AudioContextFactory</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: AudioContextFactory</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioContextFactory</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Maintains a singleton instance of the Web Audio API AudioContext class,
+instantiating the AudioContext only in response to the first call to
+getAudioContext(), and only if no existing AudioContext instance has been
+provided via the singleton property. Subsequent calls to getAudioContext()
+will return the same instance.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".singleton"><span class="type-signature">(static) </span>singleton<span class="type-signature"> :AudioContext</span></h4>
+
+
+
+
+<div class="description">
+    A singleton instance of a Web Audio API AudioContext object, or null if
+no instance has yes been created. This property may be manually set if
+you wish to supply your own AudioContext instance, but care must be
+taken to do so as early as possible. Assignments to this property will
+not retroactively affect the value returned by previous calls to
+getAudioContext().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">AudioContext</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getAudioContext"><span class="type-signature">(static) </span>getAudioContext<span class="signature">()</span><span class="type-signature"> &rarr; {AudioContext}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a singleton instance of a Web Audio API AudioContext object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line52">line 52</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A singleton instance of a Web Audio API AudioContext object, or null
+    if the Web Audio API is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">AudioContext</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.AudioPlayer.html b/doc/1.3.0/guacamole-common-js/Guacamole.AudioPlayer.html
new file mode 100644
index 0000000..b6b67f4
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.AudioPlayer.html
@@ -0,0 +1,744 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioPlayer"><span class="type-signature"></span>new AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio player which accepts, queues and plays back arbitrary audio
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream. Data received along the provided
+stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioPlayer providing support for the given
+audio format. If support for the given audio format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line97">line 97</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list. For example, "audio/L8" is a
+supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioPlayer, and thus will be properly handled
+by Guacamole.AudioPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line38">line 38</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.AudioRecorder.html b/doc/1.3.0/guacamole-common-js/Guacamole.AudioRecorder.html
new file mode 100644
index 0000000..ed06943
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.AudioRecorder.html
@@ -0,0 +1,840 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioRecorder"><span class="type-signature"></span>new AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio recorder which streams arbitrary audio data to an underlying
+Guacamole.OutputStream. It is up to implementations of this class to provide
+some means of handling this Guacamole.OutputStream. Data produced by the
+recorder is to be sent along the provided stream immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioRecorder providing support for the
+given audio format. If support for the given audio format is not available,
+null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to send audio data through.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to be sent along the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioRecorder instance supporting the given mimetype and
+    writing to the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line86">line 86</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in
+    Guacamole.AudioRecorder, excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioRecorder, and thus will be properly handled
+by Guacamole.AudioRecorder.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line67">line 67</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioRecorder, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.BlobReader.html b/doc/1.3.0/guacamole-common-js/Guacamole.BlobReader.html
new file mode 100644
index 0000000..f1688e2
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.BlobReader.html
@@ -0,0 +1,710 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobReader"><span class="type-signature"></span>new BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a single blob by appending them to each other in order.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the blob being built.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getBlob"><span class="type-signature"></span>getBlob<span class="signature">()</span><span class="type-signature"> &rarr; {Blob}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.BlobReader as a Blob.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line110">line 110</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.BlobReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Blob</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.InputStream, in bytes.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line102">line 102</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.InputStream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of bytes received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.BlobWriter.html b/doc/1.3.0/guacamole-common-js/Guacamole.BlobWriter.html
new file mode 100644
index 0000000..0e1930f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.BlobWriter.html
@@ -0,0 +1,1087 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobWriter"><span class="type-signature"></span>new BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with the
+contents of provided Blob objects.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the contents of the given blob over the underlying stream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line191">line 191</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line202">line 202</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncomplete">oncomplete</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a> has finished being
+sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line243">line 243</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error occurs reading a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>. The transfer for the
+the given blob will cease, but the stream will remain open.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was being read when the error occurred.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the failed read attempt within the blob, in bytes.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>error</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">DOMError</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error that occurred.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for each successfully-read chunk of data as a blob is being sent
+via <a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that is being read.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the read that just succeeded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line232">line 232</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.ChainedTunnel.html b/doc/1.3.0/guacamole-common-js/Guacamole.ChainedTunnel.html
new file mode 100644
index 0000000..b883650
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.ChainedTunnel.html
@@ -0,0 +1,1685 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ChainedTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ChainedTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ChainedTunnel"><span class="type-signature"></span>new ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which cycles between all specified tunnels until
+no tunnels are left. Another tunnel is used if an error occurs but
+no instructions have been received. If an instruction has been
+received, or no tunnels remain, the error is passed directly out
+through the onerror handler (if defined).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelChain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The tunnels to use, in order of priority.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1091">line 1091</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line115">line 115</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line152">line 152</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onuuid">onuuid</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the UUID that uniquely identifies this tunnel is known.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">UUID uniquely identifying this tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onuuid">Guacamole.Tunnel#event:onuuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line143">line 143</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Client.html b/doc/1.3.0/guacamole-common-js/Guacamole.Client.html
new file mode 100644
index 0000000..79b8961
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Client.html
@@ -0,0 +1,5399 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Client</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Client</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Client"><span class="type-signature"></span>new Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole protocol client. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>,
+automatically handles incoming and outgoing Guacamole instructions via the
+provided tunnel, updating its display using one or more canvas elements.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The tunnel to use to send and receive
+                                 Guacamole instructions.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel of this Guacamole.Client, passing the
+given arbitrary data to the tunnel during the connection process.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Arbitrary connection data to be sent to the underlying
+            tunnel during the connection process.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1567">line 1567</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Throws:</h5>
+
+        
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        If an error occurs during connection.
+        </div>
+    </dt>
+    <dd></dd>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            </dd>
+        </dl>
+    </dt>
+    <dd></dd>
+</dl>
+
+
+    
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createArgumentValueStream"><span class="type-signature"></span>createArgumentValueStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new argument value stream for writing, having the given
+parameter name and mimetype, requesting that the connection parameter
+with the given name be updated to the value described by the contents
+of the following stream. The instruction necessary to create this stream
+will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter to attempt to update.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line466">line 466</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created argument value stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createAudioStream"><span class="type-signature"></span>createAudioStream<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new audio stream for writing, where audio data having the give
+mimetype will be sent along the returned stream. The instruction
+necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data that will be sent along the returned
+    stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line389">line 389</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created audio stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createClipboardStream"><span class="type-signature"></span>createClipboardStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new clipboard object for writing, having the given mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createFileStream"><span class="type-signature"></span>createFileStream<span class="signature">(mimetype, filename)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new file for writing, having the given index, mimetype and
+filename. The instruction necessary to create this stream will
+automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The filename of the file being sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line407">line 407</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createObjectOutputStream"><span class="type-signature"></span>createObjectOutputStream<span class="signature">(index, mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with the given object and having
+the given mimetype and name. The legality of a mimetype and name is
+dictated by the object itself. The instruction necessary to create this
+stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object for which the output stream is being
+    created.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within the given object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line495">line 495</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of the given object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Allocates an available stream index and creates a new
+Guacamole.OutputStream using that index, associating the resulting
+stream with this Guacamole.Client. Note that this stream will not yet
+exist as far as the other end of the Guacamole connection is concerned.
+Streams exist within the Guacamole protocol only when referenced by an
+instruction which creates the stream, such as a "clipboard", "file", or
+"pipe" instruction.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line366">line 366</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.OutputStream with a newly-allocated index and
+    associated with this Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createPipeStream"><span class="type-signature"></span>createPipeStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new pipe for writing, having the given name and mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line424">line 424</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a disconnect instruction to the server and closes the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1538">line 1538</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="endStream"><span class="type-signature"></span>endStream<span class="signature">(index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a currently-open stream as complete. The other end of the
+Guacamole connection will be notified via an "end" instruction that the
+stream is closed, and the index will be made available for reuse in
+future streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream to end.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line566">line 566</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="exportState"><span class="type-signature"></span>exportState<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Produces an opaque representation of Guacamole.Client state which can be
+later imported through a call to importState(). This object is
+effectively an independent, compressed snapshot of protocol and display
+state. Invoking this function implicitly flushes the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Callback which should be invoked once the state object is ready. The
+    state object will be passed to the callback as the sole parameter.
+    This callback may be invoked immediately, or later as the display
+    finishes rendering and becomes ready.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of this Guacamole.Client. The display
+contains an Element which can be added to the DOM, causing the
+display to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line286">line 286</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of this
+                            Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="importState"><span class="type-signature"></span>importState<span class="signature">(state, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Restores Guacamole.Client protocol and display state based on an opaque
+object from a prior call to exportState(). The Guacamole.Client instance
+used to export that state need not be the same as this instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An opaque representation of Guacamole.Client state from a prior call
+    to exportState().</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The function to invoke when state has finished being imported. This
+    may happen immediately, or later as images within the provided state
+    object are loaded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestObjectInputStream"><span class="type-signature"></span>requestObjectInputStream<span class="signature">(index, name)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object from which the input stream is being
+    requested.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line515">line 515</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(index, message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledge receipt of a blob on the stream with the given index.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream associated with the
+                      received blob.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line533">line 533</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(index, data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Given the index of a file, writes a blob of data to that file.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the file to write to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Base64-encoded data to write to the file.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line548">line 548</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendKeyEvent"><span class="type-signature"></span>sendKeyEvent<span class="signature">(pressed, keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a key event having the given properties as if the user
+pressed or released a key.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>pressed</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the key is pressed (true) or released
+                         (false).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed or released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line314">line 314</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMouseState"><span class="type-signature"></span>sendMouseState<span class="signature">(mouseState)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a mouse event having the properties provided by the given mouse
+state.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mouseState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The state of the mouse to send
+                                          in the mouse event.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendSize"><span class="type-signature"></span>sendSize<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the current size of the screen.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the screen.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the screen.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line296">line 296</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~getLayerIndex"><span class="type-signature">(inner) </span>getLayerIndex<span class="signature">(layer)</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the index passed to getLayer() when the given layer was created.
+Positive indices refer to visible layers, an index of zero refers to the
+default layer, and negative indices refer to buffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+|
+
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose index should be determined.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line787">line 787</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The index of the given layer, or null if no such layer is associated
+    with this client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onargv">onargv</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the current value of a connection parameter is being exposed
+by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive connection parameter data from the
+    server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter whose value is being exposed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line667">line 667</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onaudio">onaudio</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a audio stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive audio data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.AudioPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in audio players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclipboard">onclipboard</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the clipboard of the remote client is changing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive
+                                      clipboard data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line677">line 677</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error is reported by the remote client, and the connection
+is being closed.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfile">onfile</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a file stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the file received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line689">line 689</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfilesystem">onfilesystem</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a filesystem object is created. The object provided to this
+event handler will contain its own event handlers and functions for
+requesting and handling data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>object</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Object.html">Guacamole.Object</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The created filesystem object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the filesystem.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line703">line 703</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onname">onname</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the remote client sends a name update.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new name of this client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line597">line 597</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpipe">onpipe</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a pipe stream is created. The stream provided to this event
+handler will contain its own event handlers for received data;
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line715">line 715</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onrequired">onrequired</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a "required" instruction is received. A required instruction
+indicates that additional parameters are required for the connection to
+continue, such as user credentials.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array.&lt;String></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The names of the connection parameters that are required to be
+     provided for the connection to continue.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line727">line 727</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of this Guacamole.Client changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line589">line 589</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onsync">onsync</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a sync instruction is received from the server, indicating
+that the server is finished processing any input from the client and
+has sent any results.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The timestamp associated with the sync
+                          instruction.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line738">line 738</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onvideo">onvideo</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a video stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive video data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer on which the received video data should be
+    played. It is the responsibility of the Guacamole.VideoPlayer
+    implementation to play the received data within this layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line650">line 650</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.VideoPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in video players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.DataURIReader.html b/doc/1.3.0/guacamole-common-js/Guacamole.DataURIReader.html
new file mode 100644
index 0000000..681b8ea
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.DataURIReader.html
@@ -0,0 +1,441 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: DataURIReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: DataURIReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="DataURIReader"><span class="type-signature"></span>new DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+received blobs as a single data URI built over the course of the stream.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getURI"><span class="type-signature"></span>getURI<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the data URI of all data received through the underlying stream
+thus far.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The data URI of all data received through the underlying stream thus
+    far.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">String</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html b/doc/1.3.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
new file mode 100644
index 0000000..75dd805
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
@@ -0,0 +1,6663 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VisibleLayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VisibleLayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Display.html">.Display</a>.</span>VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VisibleLayer"><span class="type-signature"></span>new VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for Guacamole.Layer, allowing layers to be easily
+repositioned and nested. This allows certain operations to be accelerated
+through DOM manipulation, rather than raster operations.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1300">line 1300</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Layer.html">Guacamole.Layer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The opacity of the layer container, where 255 is fully opaque and 0 is
+fully transparent.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1324">line 1324</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#autosize">Guacamole.Layer#autosize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="children"><span class="type-signature"></span>children<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Set of all children of this layer, indexed by layer index. This object
+will have one property per child.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1366">line 1366</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#height">Guacamole.Layer#height</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="matrix"><span class="type-signature"></span>matrix<span class="type-signature"> :Array.&lt;Number></span></h4>
+
+
+
+
+<div class="description">
+    The affine transformation applied to this layer container. Each element
+corresponds to a value from the transformation matrix, with the first
+three values being the first row, and the last three values being the
+second row. There are six values total.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1354">line 1354</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="parent"><span class="type-signature"></span>parent<span class="type-signature"> :<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span></h4>
+
+
+
+
+<div class="description">
+    The parent layer container of this layer, if any.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1360">line 1360</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#width">Guacamole.Layer#width</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    X coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1331">line 1331</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Y coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1338">line 1338</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="z"><span class="type-signature"></span>z<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Z stacking order of this layer relative to other sibling layers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1344">line 1344</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#arc">Guacamole.Layer#arc</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line556">line 556</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#clip">Guacamole.Layer#clip</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line630">line 630</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#close">Guacamole.Layer#close</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line596">line 596</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#copy">Guacamole.Layer#copy</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line482">line 482</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#curveTo">Guacamole.Layer#curveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line579">line 579</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes this layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1498">line 1498</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1523">line 1523</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasImageSource</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#drawImage">Guacamole.Layer#drawImage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line331">line 331</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillColor">Guacamole.Layer#fillColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line682">line 682</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillLayer">Guacamole.Layer#fillLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line737">line 737</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#getCanvas">Guacamole.Layer#getCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the canvas and any other elements
+associated with this layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1405">line 1405</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing this layer's canvas.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#lineTo">Guacamole.Layer#lineTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line530">line 530</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this VisibleLayer to the given X and Y
+coordinate, sets the Z stacking order, and reparents this VisibleLayer
+to the given VisibleLayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1459">line 1459</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#moveTo">Guacamole.Layer#moveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line511">line 511</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#pop">Guacamole.Layer#pop</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line766">line 766</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#push">Guacamole.Layer#push</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line755">line 755</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#put">Guacamole.Layer#put</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line435">line 435</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#rect">Guacamole.Layer#rect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line611">line 611</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#reset">Guacamole.Layer#reset</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line780">line 780</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#resize">Guacamole.Layer#resize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setChannelMask">Guacamole.Layer#setChannelMask</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line848">line 848</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setMiterLimit">Guacamole.Layer#setMiterLimit</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line861">line 861</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setTransform">Guacamole.Layer#setTransform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line809">line 809</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of this layer to the given value, where 255 is fully
+opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1489">line 1489</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeColor">Guacamole.Layer#strokeColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line656">line 656</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeLayer">Guacamole.Layer#strokeLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line709">line 709</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#toCanvas">Guacamole.Layer#toCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transfer">Guacamole.Layer#transfer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line358">line 358</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transform">Guacamole.Layer#transform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line828">line 828</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="translate"><span class="type-signature"></span>translate<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this layer to the given X and Y
+coordinate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1428">line 1428</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Display.html b/doc/1.3.0/guacamole-common-js/Guacamole.Display.html
new file mode 100644
index 0000000..8d9c101
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Display.html
@@ -0,0 +1,9393 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Display</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Display</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Display<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Display"><span class="type-signature"></span>new Display<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The Guacamole display. The display does not deal with the Guacamole
+protocol, and instead implements a set of graphical operations which
+embody the set of operations present in the protocol. The order operations
+are executed is guaranteed to be in the same order as their corresponding
+functions are called.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="cursorHotspotX"><span class="type-signature"></span>cursorHotspotX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The X coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line84">line 84</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorHotspotY"><span class="type-signature"></span>cursorHotspotY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorX"><span class="type-signature"></span>cursorX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorY"><span class="type-signature"></span>cursorY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line113">line 113</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(layer, x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line829">line 829</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to affect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line858">line 858</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line783">line 783</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createBuffer"><span class="type-signature"></span>createBuffer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Layer.html">Guacamole.Layer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+are implemented in the same manner as layers, but do not provide the
+same nesting semantics.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line364">line 364</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created buffer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createLayer"><span class="type-signature"></span>createLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new layer. The new layer will be a direct child of the default
+layer, but can be moved to be a child of any other layer. Layers returned
+by this function are visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line351">line 351</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(layer, cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line846">line 846</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes the given layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being removed from its parent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1087">line 1087</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix) to the given layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being distorted.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1118">line 1118</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(layer, x, y, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image at the specified URL at the given coordinates. The image
+will be loaded automatically, and this and any future operations will
+wait for the image to finish loading.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the image to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line656">line 656</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawBlob"><span class="type-signature"></span>drawBlob<span class="signature">(layer, x, y, blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image contained within the specified Blob at the given
+coordinates. The Blob specified must already be populated with image
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Blob containing the image data to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line550">line 550</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(layer, x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasImageSource</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line527">line 527</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawStream"><span class="type-signature"></span>drawStream<span class="signature">(layer, x, y, stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image within the given stream at the given coordinates. The
+image will be loaded automatically, and this and any future operations
+will wait for the image to finish loading. This function will
+automatically choose an approriate method for reading and decoding the
+given image stream, and should be preferred for received streams except
+where manual decoding of the stream is unavoidable.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream along which image data will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the image within the stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line624">line 624</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(layer, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line930">line 930</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(layer, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line969">line 969</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flatten"><span class="type-signature"></span>flatten<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a canvas element containing the entire display, with all child
+layers composited within.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1208">line 1208</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of
+                            the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flush"><span class="type-signature"></span>flush<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Flush all pending draw tasks, if possible, as a new frame. If the entire
+frame is not ready, the flush will wait until all required tasks are
+unblocked.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The function to call when this frame is
+                           flushed. This may happen immediately, or
+                           later when blocked tasks become unblocked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line379">line 379</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCursorLayer"><span class="type-signature"></span>getCursorLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the cursor layer of this display. Each Guacamole display contains
+a layer for the image of the mouse cursor. This layer is a special case
+and exists above all other layers, similar to the hardware mouse cursor.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line340">line 340</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The cursor layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDefaultLayer"><span class="type-signature"></span>getDefaultLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the default layer of this display. Each Guacamole display always
+has at least one layer. Other layers can optionally be created within
+this layer, but the default layer cannot be removed and is the absolute
+ancestor of all other layers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The default layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element which contains the Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line299">line 299</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the Guacamole display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getHeight"><span class="type-signature"></span>getHeight<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the height of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line317">line 317</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The height of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getScale"><span class="type-signature"></span>getScale<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the scale of the display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1197">line 1197</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The scale of the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getWidth"><span class="type-signature"></span>getWidth<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the width of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line308">line 308</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The width of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line809">line 809</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(layer, parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of the given layer to the given X and Y
+coordinate, sets the Z stacking order, and reparents the layer
+to the given parent layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being moved.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1144">line 1144</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveCursor"><span class="type-signature"></span>moveCursor<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the location of the local cursor to the given coordinates. For the
+sake of responsiveness, this function performs its action immediately.
+Cursor motion is not maintained within atomic frames.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move the cursor to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move the cursor to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line796">line 796</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">(layer, mimetype, duration, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Plays the video at the specified URL within this layer. The video
+will be loaded automatically, and this and any future operations will
+wait for the video to finish loading. Future operations will not be
+executed until the video finishes playing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video to play.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The duration of the video in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the video to play.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line684">line 684</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line991">line 991</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line980">line 980</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line755">line 755</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(layer, x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line875">line 875</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1003">line 1003</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(layer, width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of the given Layer to the given width and height.
+Resizing is only attempted if the new size provided is actually different
+from the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to resize.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line484">line 484</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="scale"><span class="type-signature"></span>scale<span class="signature">(scale)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the scale of the client display element such that it renders at
+a relatively smaller or larger size, without affecting the true
+resolution of the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>scale</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The scale to resize to, where 1.0 is normal
+                      size (1:1 scale).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1174">line 1174</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(layer, mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1058">line 1058</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the hotspot and image of the mouse cursor displayed within the
+Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The source layer containing the data which
+                               should be used as the mouse cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line410">line 410</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(layer, limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1074">line 1074</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1021">line 1021</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(layer, alpha)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of the given layer to the given value, where 255 is
+fully opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose opacity should be set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>alpha</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1160">line 1160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="showCursor"><span class="type-signature"></span>showCursor<span class="signature">(shown<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets whether the software-rendered cursor is shown. This cursor differs
+from the hardware cursor in that it is built into the Guacamole.Display,
+and relies on its own Guacamole layer to render.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>shown</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    true
+                
+                </td>
+            
+
+            <td class="description last">Whether to show the software cursor.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line438">line 438</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(layer, cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line912">line 912</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(layer, cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line952">line 952</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line730">line 730</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1039">line 1039</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncursor">oncursor</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the local cursor image is changed. This can be used to
+implement special handling of the client-side cursor, or to override
+the default use of a software cursor layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line135">line 135</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onresize">onresize</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the default layer (and thus the entire Guacamole display)
+is resized.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width of the Guacamole display.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height of the Guacamole display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.HTTPTunnel.html b/doc/1.3.0/guacamole-common-js/Guacamole.HTTPTunnel.html
new file mode 100644
index 0000000..b0ea3cf
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.HTTPTunnel.html
@@ -0,0 +1,1767 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: HTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: HTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="HTTPTunnel"><span class="type-signature"></span>new HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of the HTTP tunneling service.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line245">line 245</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line115">line 115</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line152">line 152</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onuuid">onuuid</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the UUID that uniquely identifies this tunnel is known.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">UUID uniquely identifying this tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onuuid">Guacamole.Tunnel#event:onuuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line143">line 143</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.InputSink.html b/doc/1.3.0/guacamole-common-js/Guacamole.InputSink.html
new file mode 100644
index 0000000..26a76b5
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.InputSink.html
@@ -0,0 +1,386 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputSink</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputSink</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputSink<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputSink"><span class="type-signature"></span>new InputSink<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A hidden input field which attempts to keep itself focused at all times,
+except when another input field has been intentionally focused, whether
+programatically or by the user. The actual underlying input field, returned
+by getElement(), may be used as a reliable source of keyboard-related events,
+particularly composition and input events which may require a focused input
+field to be dispatched at all.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="focus"><span class="type-signature"></span>focus<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to focus the underlying input field. The focus attempt occurs
+asynchronously, and may silently fail depending on browser restrictions.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying input field. This input field MUST be manually
+added to the DOM for the Guacamole.InputSink to have any effect.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.InputStream.html b/doc/1.3.0/guacamole-common-js/Guacamole.InputStream.html
new file mode 100644
index 0000000..6294584
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.InputStream.html
@@ -0,0 +1,724 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputStream"><span class="type-signature"></span>new InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An input stream abstraction used by the Guacamole client to facilitate
+transfer of files or other binary data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line42">line 42</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledges the receipt of a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onblob">onblob</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when a blob of data is received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The received base64 data.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this stream is closed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.IntegerPool.html b/doc/1.3.0/guacamole-common-js/Guacamole.IntegerPool.html
new file mode 100644
index 0000000..8d001bb
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.IntegerPool.html
@@ -0,0 +1,510 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: IntegerPool</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: IntegerPool</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>IntegerPool<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="IntegerPool"><span class="type-signature"></span>new IntegerPool<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Integer pool which returns consistently increasing integers while integers
+are in use, and previously-used integers when possible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line27">line 27</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="next_int"><span class="type-signature"></span>next_int<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The next integer to return if no more integers remain.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="free"><span class="type-signature"></span>free<span class="signature">(integer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Frees the given integer, allowing it to be reused.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>integer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The integer to free.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="next"><span class="type-signature"></span>next<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the next available integer in the pool. If possible, a previously
+used integer will be returned.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The next available integer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.JSONReader.html b/doc/1.3.0/guacamole-common-js/Guacamole.JSONReader.html
new file mode 100644
index 0000000..7f37ce0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.JSONReader.html
@@ -0,0 +1,688 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: JSONReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: JSONReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="JSONReader"><span class="type-signature"></span>new JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a JavaScript object by appending them to each other, in
+order, and decoding the result as JSON. Note that this object will overwrite
+any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that JSON will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getJSON"><span class="type-signature"></span>getJSON<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.JSONReader as a JavaScript
+object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.JSONReader, as parsed from the JSON
+    contents of the input stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.JSONReader, in characters.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.JSONReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of characters received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html b/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
new file mode 100644
index 0000000..31d85fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
@@ -0,0 +1,709 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ModifierState</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ModifierState</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Keyboard.html">.Keyboard</a>.</span>ModifierState<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ModifierState"><span class="type-signature"></span>new ModifierState<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The state of all supported keyboard modifiers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1452">line 1452</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alt"><span class="type-signature"></span>alt<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether alt is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1470">line 1470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="ctrl"><span class="type-signature"></span>ctrl<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether ctrl is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1464">line 1464</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="hyper"><span class="type-signature"></span>hyper<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether hyper (windows key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1482">line 1482</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="meta"><span class="type-signature"></span>meta<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether meta (apple key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1476">line 1476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="shift"><span class="type-signature"></span>shift<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether shift is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1458">line 1458</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".fromKeyboardEvent"><span class="type-signature">(static) </span>fromKeyboardEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {<a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the modifier state applicable to the keyboard event given.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">KeyboardEvent</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keyboard event to read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1493">line 1493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current state of keyboard
+                                            modifiers.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.html b/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.html
new file mode 100644
index 0000000..ba8921d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Keyboard.html
@@ -0,0 +1,1686 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Keyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Keyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Keyboard"><span class="type-signature"></span>new Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser and cross-keyboard keyboard for a specific element.
+Browser and keyboard layout variation is abstracted away, providing events
+which represent keys as their corresponding X11 keysym.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Element to use to provide keyboard events. If omitted, at least one
+   Element must be manually provided through the listenTo() function for
+   the Guacamole.Keyboard instance to have any effect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="modifiers"><span class="type-signature"></span>modifiers<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All modifiers and their states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line613">line 613</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="pressed"><span class="type-signature"></span>pressed<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The state of every key, indexed by keysym. If a particular key is
+pressed, the value of pressed for that keysym will be true. If a key
+is not currently pressed, it will not be defined.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line620">line 620</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="listenTo"><span class="type-signature"></span>listenTo<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attaches event listeners to the given Element, automatically translating
+received key, input, and composition events into simple keydown/keyup
+events signalled through this Guacamole.Keyboard's onkeydown and
+onkeyup handlers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to attach event listeners to for the sake of handling
+    key or input events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1292">line 1292</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="press"><span class="type-signature"></span>press<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as pressed, firing the keydown event if registered. Key
+repeat for the pressed key will start after a delay if that key is
+not a modifier. The return value of this function depends on the
+return value of the keydown event handler, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to press.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line821">line 821</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if event should NOT be canceled, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="release"><span class="type-signature"></span>release<span class="signature">(keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as released, firing the keyup event if registered.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to release.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line864">line 864</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resets the state of this keyboard, releasing all keys, and firing keyup
+events for each released key.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line913">line 913</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="type"><span class="type-signature"></span>type<span class="signature">(str)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Presses and releases the keys necessary to type the given string of
+text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>str</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The string to type.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~isPrintable"><span class="type-signature">(inner) </span>isPrintable<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns true if the given keysym corresponds to a printable character,
+false otherwise.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line700">line 700</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given keysym corresponds to a printable character,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~markEvent"><span class="type-signature">(inner) </span>markEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to mark the given Event as having been handled by this
+Guacamole.Keyboard. If the Event has already been marked as handled,
+false is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Event to mark.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1270">line 1270</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given Event was successfully marked, false if the given
+    Event was already marked.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line69">line 69</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the key event should be allowed through to the
+                  browser, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line78">line 78</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Layer.Pixel.html b/doc/1.3.0/guacamole-common-js/Guacamole.Layer.Pixel.html
new file mode 100644
index 0000000..66ae9d8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Layer.Pixel.html
@@ -0,0 +1,556 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Pixel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Pixel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Layer.html">.Layer</a>.</span>Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Pixel"><span class="type-signature"></span>new Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single pixel of image data. All components have a minimum value
+of 0 and a maximum value of 255.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of this pixel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line956">line 956</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The alpha component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line980">line 980</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blue"><span class="type-signature"></span>blue<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The blue component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line974">line 974</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="green"><span class="type-signature"></span>green<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The green component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line968">line 968</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="red"><span class="type-signature"></span>red<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The red component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line962">line 962</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Layer.html b/doc/1.3.0/guacamole-common-js/Guacamole.Layer.html
new file mode 100644
index 0000000..a93a07e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Layer.html
@@ -0,0 +1,5767 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layer"><span class="type-signature"></span>new Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract ordered drawing surface. Each Layer contains a canvas element and
+provides simple drawing instructions for drawing to that canvas element,
+however unlike the canvas element itself, drawing operations on a Layer are
+guaranteed to run in order, even if such an operation must wait for an image
+to load before completing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line37">line 37</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Layer.Pixel.html">Pixel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ATOP"><span class="type-signature">(static) </span>ATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "atop".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line883">line 883</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".IN"><span class="type-signature">(static) </span>IN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "in".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line919">line 919</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OUT"><span class="type-signature">(static) </span>OUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "out".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line927">line 927</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OVER"><span class="type-signature">(static) </span>OVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "over".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line898">line 898</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".PLUS"><span class="type-signature">(static) </span>PLUS<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "plus".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line903">line 903</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RATOP"><span class="type-signature">(static) </span>RATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "ratop".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line935">line 935</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RIN"><span class="type-signature">(static) </span>RIN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rin".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line911">line 911</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROUT"><span class="type-signature">(static) </span>ROUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rout".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line878">line 878</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROVER"><span class="type-signature">(static) </span>ROVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rover".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line893">line 893</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".SRC"><span class="type-signature">(static) </span>SRC<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "src".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line943">line 943</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".XOR"><span class="type-signature">(static) </span>XOR<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "xor".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line888">line 888</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line556">line 556</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line630">line 630</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line596">line 596</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line482">line 482</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line579">line 579</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">CanvasImageSource</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line331">line 331</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line682">line 682</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line737">line 737</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line530">line 530</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line511">line 511</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line766">line 766</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line755">line 755</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line435">line 435</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line611">line 611</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line780">line 780</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line848">line 848</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line861">line 861</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line809">line 809</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line656">line 656</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line709">line 709</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line358">line 358</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line828">line 828</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.State.html b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.State.html
new file mode 100644
index 0000000..36f4b85
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.State.html
@@ -0,0 +1,1073 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: State</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: State</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="State"><span class="type-signature"></span>new State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for properties describing the state of a mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>left</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the left mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>middle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the middle mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>right</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the right mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>up</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the up mouse button is pressed (the fourth
+                    button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>down</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the down mouse button is pressed (the fifth
+                      button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line411">line 411</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="down"><span class="type-signature"></span>down<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the down mouse button is currently pressed. This is the fifth 
+mouse button, associated with downward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="left"><span class="type-signature"></span>left<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the left mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line435">line 435</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="middle"><span class="type-signature"></span>middle<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the middle mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="right"><span class="type-signature"></span>right<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the right mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line447">line 447</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="up"><span class="type-signature"></span>up<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the up mouse button is currently pressed. This is the fourth
+mouse button, associated with upward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line455">line 455</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line423">line 423</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current Y position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line429">line 429</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fromClientPosition"><span class="type-signature"></span>fromClientPosition<span class="signature">(element, clientX, clientY)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates the position represented within this state object by the given
+element and clientX/clientY coordinates (commonly available within event
+objects). Position is translated from clientX/clientY (relative to
+viewport) to element-relative coordinates.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The element the coordinates should be relative
+                         to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line476">line 476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
new file mode 100644
index 0000000..33de54d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
@@ -0,0 +1,922 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchpad</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchpad</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchpad"><span class="type-signature"></span>new Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser relative touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchpad (drag to push the mouse pointer, tap to click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line513">line 513</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line537">line 537</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line531">line 531</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line546">line 546</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line525">line 525</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line560">line 560</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchpad element.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line580">line 580</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line571">line 571</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
new file mode 100644
index 0000000..52b1068
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
@@ -0,0 +1,988 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchscreen</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchscreen</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchscreen"><span class="type-signature"></span>new Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser absolute touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchscreen (tapping anywhere on the screen clicks at that point,
+long-press to right-click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line780">line 780</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line838">line 838</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line832">line 832</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line853">line 853</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="longPressThreshold"><span class="type-signature"></span>longPressThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The amount of time a press must be held for long press to be
+detected.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line826">line 826</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "mousedown" gesture initiated by the user by pressing one
+finger over the touchscreen element, as part of a "scroll" gesture
+initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line867">line 867</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+dragging a finger over the touchscreen element will always cause
+the mouse button to be effectively down, as if clicking-and-dragging.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "mouseup" gesture initiated by the user by removing the
+finger pressed against the touchscreen element, or as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line878">line 878</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.html b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.html
new file mode 100644
index 0000000..72912cb
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Mouse.html
@@ -0,0 +1,1298 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Mouse</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Mouse</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Mouse<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Mouse"><span class="type-signature"></span>new Mouse<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser mouse events for a given element. The events of
+the given element are automatically populated with handlers that translate
+mouse events into a non-browser-specific event provided by the
+Guacamole.Mouse instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide mouse events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Mouse.State.html">State</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_LINE"><span class="type-signature"></span>PIXELS_PER_LINE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per line.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line54">line 54</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_PAGE"><span class="type-signature"></span>PIXELS_PER_PAGE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per page.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line59">line 59</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The minimum amount of pixels scrolled required for a single scroll button
+click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line49">line 49</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(canvas, x, y)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the local mouse cursor to the given canvas, having the given
+hotspot coordinates. This affects styling of the element backing this
+Guacamole.Mouse only, and may fail depending on browser support for
+setting the mouse cursor.
+
+If setting the local cursor is desired, it is up to the implementation
+to do something else, such as use the software cursor built into
+Guacamole.Display, if the local cursor cannot be set.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line381">line 381</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the cursor was successfully set, false if the
+                  cursor could not be set for any reason.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line80">line 80</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse over the element associated with
+this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line98">line 98</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseout">onmouseout</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the mouse leaves the boundaries of the element associated
+with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line89">line 89</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Object.html b/doc/1.3.0/guacamole-common-js/Guacamole.Object.html
new file mode 100644
index 0000000..358f60e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Object.html
@@ -0,0 +1,1130 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Object</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Object</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Object<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Object"><span class="type-signature"></span>new Object<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An object used by the Guacamole client to house arbitrarily-many named
+input and output streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ROOT_STREAM"><span class="type-signature">(static, constant) </span>ROOT_STREAM<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The reserved name denoting the root stream of any object. The contents of
+the root stream MUST be a JSON map of stream name to mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line200">line 200</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".STREAM_INDEX_MIMETYPE"><span class="type-signature">(static, constant) </span>STREAM_INDEX_MIMETYPE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The mimetype of a stream containing JSON which maps available stream names
+to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+have this mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this object.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with this object and having the
+given mimetype and name. The legality of a mimetype and name is dictated
+by the object itself.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line187">line 187</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of this object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestInputStream"><span class="type-signature"></span>requestInputStream<span class="signature">(name, bodyCallback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>bodyCallback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke when the body of the requested input stream
+    is received. This callback will be provided a Guacamole.InputStream
+    and its mimetype as its two only arguments. If the onbody handler of
+    this object is overridden, this callback will not be invoked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line161">line 161</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onbody">onbody</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object receives the body of a requested input stream.
+By default, all objects will invoke the callbacks provided to their
+requestInputStream() functions based on the name of the stream
+requested. This behavior can be overridden by specifying a different
+handler here.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>inputStream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The input stream of the received body.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the stream whose body has been received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line131">line 131</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onundefine">onundefine</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object is being undefined. Once undefined, no further
+communication involving this object may occur.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line146">line 146</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
new file mode 100644
index 0000000..3bf21bd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
@@ -0,0 +1,658 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Key</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Key</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Key"><span class="type-signature"></span>new Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single key, or a single possible behavior of a key. Each key
+on the on-screen keyboard must have at least one associated
+Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+depends on modifier states.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this key.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name to use instead of any name provided within the template, if
+    any. If omitted, the name within the template will be used, assuming the
+    template contains a name.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line877">line 877</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keysym"><span class="type-signature"></span>keysym<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The keysym to be pressed/released when this key is pressed/released. If
+not provided, this will be derived from the title if the title is a
+single character.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line901">line 901</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="modifier"><span class="type-signature"></span>modifier<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The name of the modifier set when the key is pressed and cleared when
+this key is released, if any. The names of modifiers are distinct from
+the names of keys; both the "RightShift" and "LeftShift" keys may set
+the "shift" modifier, for example. By default, the key will affect no
+modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line930">line 930</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique name identifying this key within the keyboard layout.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line884">line 884</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="requires"><span class="type-signature"></span>requires<span class="type-signature"> :Array.&lt;String></span></h4>
+
+
+
+
+<div class="description">
+    An array containing the names of each modifier required for this key to
+have an effect. For example, a lowercase letter may require nothing,
+while an uppercase letter would require "shift", assuming the Shift key
+is named "shift" within the layout. By default, the key will require
+no modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;String></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line941">line 941</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The human-readable title that will be displayed to the user within the
+key. If not provided, this will be derived from the key name.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
new file mode 100644
index 0000000..cf5255c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
@@ -0,0 +1,689 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layout</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layout</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Layout<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layout"><span class="type-signature"></span>new Layout<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents an entire on-screen keyboard layout, including all available
+keys, their behaviors, and their relative position and sizing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this layout.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line796">line 796</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span></h4>
+
+
+
+
+<div class="description">
+    Map of key name to corresponding keysym, title, or key object. If only
+the keysym or title is provided, the key object will be created
+implicitly. In all cases, the name property of the key object will be
+taken from the name given in the mapping.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line823">line 823</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="keyWidths"><span class="type-signature"></span>keyWidths<span class="type-signature"> :Object.&lt;String, Number></span></h4>
+
+
+
+
+<div class="description">
+    The width of each key, in arbitrary units, relative to other keys in
+this layout. The true pixel size of each key will be determined by the
+overall size of the keyboard. If not defined here, the width of each
+key will default to 1.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line856">line 856</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="language"><span class="type-signature"></span>language<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The language of keyboard layout, such as "en_US". This property is for
+informational purposes only, but it is recommend to conform to the
+[language code]_[country code] format.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Arbitrarily nested, arbitrarily grouped key names. The contents of the
+layout will be traversed to produce an identically-nested grouping of
+keys in the DOM tree. All strings will be transformed into their
+corresponding sets of keys, while all objects and arrays will be
+transformed into named groups and anonymous groups respectively. Any
+numbers present will be transformed into gaps of that size, scaled
+according to the same units as each key.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line836">line 836</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The type of keyboard layout, such as "qwerty". This property is for
+informational purposes only, and does not conform to any standard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line813">line 813</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The width of the entire keyboard, in arbitrary units. The width of each
+key is relative to this width, as both width values are assumed to be in
+the same units. The conversion factor between these units and pixels is
+derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line846">line 846</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
new file mode 100644
index 0000000..aad5ac2
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
@@ -0,0 +1,996 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OnScreenKeyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OnScreenKeyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OnScreenKeyboard"><span class="type-signature"></span>new OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Dynamic on-screen keyboard. Given the layout object for an on-screen
+keyboard, this object will construct a clickable on-screen keyboard with its
+own key events.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layout</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layout of the on-screen keyboard to display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span></h4>
+
+
+
+
+<div class="description">
+    Map of all key names to their corresponding set of keys. Each key name
+may correspond to multiple keys due to the effect of modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line543">line 543</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :<a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span></h4>
+
+
+
+
+<div class="description">
+    The keyboard layout provided at time of construction.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line427">line 427</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line404">line 404</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the entire on-screen keyboard.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line433">line 433</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the entire on-screen keyboard.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(width)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resizes all elements within this Guacamole.OnScreenKeyboard such that
+the width is close to but does not exceed the specified width. The
+height of the keyboard is determined based on the width.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width to resize this Guacamole.OnScreenKeyboard
+                      to, in pixels.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line445">line 445</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line412">line 412</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line420">line 420</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.OutputStream.html b/doc/1.3.0/guacamole-common-js/Guacamole.OutputStream.html
new file mode 100644
index 0000000..b8596b4
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.OutputStream.html
@@ -0,0 +1,700 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OutputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OutputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OutputStream"><span class="type-signature"></span>new OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract stream which can receive data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line29">line 29</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Writes the given base64-encoded data to this stream as a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The base64-encoded data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes this stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an acknowledgement is received from the server, indicating
+that a stream operation has completed, or an error has occurred.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Parser.html b/doc/1.3.0/guacamole-common-js/Guacamole.Parser.html
new file mode 100644
index 0000000..09cb092
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Parser.html
@@ -0,0 +1,490 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Parser</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Parser</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Parser<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Parser"><span class="type-signature"></span>new Parser<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple Guacamole protocol parser that invokes an oninstruction event when
+full instructions are available from data received via receive().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="receive"><span class="type-signature"></span>receive<span class="signature">(packet)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Appends the given instruction data packet to the internal buffer of
+this Guacamole.Parser, executing all completed instructions at
+the beginning of this buffer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>packet</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The instruction data to receive.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line154">line 154</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioFormat.html b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioFormat.html
new file mode 100644
index 0000000..a261388
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioFormat.html
@@ -0,0 +1,625 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioFormat</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioFormat</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioFormat"><span class="type-signature"></span>new RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A description of the format of raw PCM audio, such as that used by
+Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+describes the number of bytes per sample, the number of channels, and the
+overall sample rate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose properties should be copied into the corresponding
+    properties of the new Guacamole.RawAudioFormat.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="bytesPerSample"><span class="type-signature"></span>bytesPerSample<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of bytes in each sample of audio data. This value is
+independent of the number of channels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="channels"><span class="type-signature"></span>channels<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of audio channels (ie: 1 for mono, 2 for stereo).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="rate"><span class="type-signature"></span>rate<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of samples per second, per channel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".parse"><span class="type-signature">(static) </span>parse<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+which describes the type of raw audio data represented by that mimetype. If
+the mimetype is not a supported raw audio data mimetype, null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The audio mimetype to parse.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.RawAudioFormat which describes the type of raw
+    audio data represented by the given mimetype, or null if the given
+    mimetype is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioPlayer.html b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
new file mode 100644
index 0000000..8a1f004
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
@@ -0,0 +1,646 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioPlayer"><span class="type-signature"></span>new RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+audio. This player relies only on the Web Audio API and does not require any
+browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream, which must be a
+    "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+    "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line493">line 493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+    any parameters. If the necessary JavaScript APIs for playing raw audio
+    are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioPlayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.AudioPlayer.html#sync">Guacamole.AudioPlayer#sync</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line444">line 444</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioRecorder.html b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
new file mode 100644
index 0000000..1410523
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
@@ -0,0 +1,824 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioRecorder"><span class="type-signature"></span>new RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioRecorder providing support for raw PCM
+format audio. This recorder relies only on the Web Audio API and does not
+require any browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to write audio data to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to send along the provided stream, which
+    must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+    such as: "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="~mediaStream"><span class="type-signature">(inner) </span>mediaStream<span class="type-signature"> :MediaStream</span></h4>
+
+
+
+
+<div class="description">
+    The audio stream provided by the browser, if allowed. If no stream has
+yet been received, this will be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">MediaStream</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line252">line 252</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line591">line 591</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+    excluding any parameters. If the necessary JavaScript APIs for recording
+    raw audio are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioRecorder.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line568">line 568</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onclose">Guacamole.AudioRecorder#event:onclose</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onerror">Guacamole.AudioRecorder#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.SessionRecording.html b/doc/1.3.0/guacamole-common-js/Guacamole.SessionRecording.html
new file mode 100644
index 0000000..7109b8a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.SessionRecording.html
@@ -0,0 +1,1743 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: SessionRecording</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: SessionRecording</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="SessionRecording"><span class="type-signature"></span>new SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A recording of a Guacamole session. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>, the
+Guacamole.SessionRecording automatically handles incoming Guacamole
+instructions, storing them for playback. Playback of the recording may be
+controlled through function calls to the Guacamole.SessionRecording, even
+while the recording has not yet finished being created or downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.Tunnel from which the instructions of the recording should
+    be read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel, beginning download of the Guacamole
+session. Playback of the Guacamole session cannot occur until at least
+one frame worth of instructions has been downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line480">line 480</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnects the underlying tunnel, stopping further download of the
+Guacamole session.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line488">line 488</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of the Guacamole.Client used by this
+Guacamole.SessionRecording for playback. The display contains an Element
+which can be added to the DOM, causing the display (and thus playback of
+the recording) to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line502">line 502</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of the Guacamole.Client used by this
+    Guacamole.SessionRecording for playback.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDuration"><span class="type-signature"></span>getDuration<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the duration of this recording, in milliseconds. If the
+recording is still being downloaded, this value will gradually increase.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line542">line 542</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The duration of this recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getPosition"><span class="type-signature"></span>getPosition<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current playback position within the recording, in
+milliseconds, where zero is the start of the recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line523">line 523</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current playback position within the recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isPlaying"><span class="type-signature"></span>isPlaying<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether playback is currently in progress.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line512">line 512</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if playback is currently in progress, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pause"><span class="type-signature"></span>pause<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pauses playback of the recording, if playback is currently in progress.
+If playback is not in progress, this function has no effect. If a seek
+operation is in progress, the seek is aborted. Playback is initially
+paused when a Guacamole.SessionRecording is created, and must be
+explicitly started through a call to play().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line632">line 632</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Begins continuous playback of the recording downloaded thus far.
+Playback of the recording will continue until pause() is invoked or
+until no further frames exist. Playback is initially paused when a
+Guacamole.SessionRecording is created, and must be explicitly started
+through a call to this function. If playback is already in progress,
+this function has no effect. If a seek operation is in progress,
+playback resumes at the current position, and the seek is aborted as if
+completed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line563">line 563</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="seek"><span class="type-signature"></span>seek<span class="signature">(position, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Seeks to the given position within the recording. If the recording is
+currently being played back, playback will continue after the seek is
+performed. If the recording is currently paused, playback will be
+paused after the seek is performed. If a seek operation is already in
+progress, that seek is first aborted. The seek operation will proceed
+asynchronously.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The position within the recording to seek to, in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke once the seek operation has completed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line600">line 600</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpause">onpause</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has been paused. This may
+happen when playback is explicitly paused with a call to pause(), or
+when playback is implicitly paused due to reaching the end of the
+recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line461">line 461</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onplay">onplay</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has started.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line451">line 451</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when new frames have become available while the recording is
+being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new duration of the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line444">line 444</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onseek">onseek</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the playback position within the recording changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new position within the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html b/doc/1.3.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
new file mode 100644
index 0000000..90f4cc2
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
@@ -0,0 +1,1769 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StaticHTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StaticHTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StaticHTTPTunnel"><span class="type-signature"></span>new StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+received via HTTP. Instructions within the file are parsed and handled as
+quickly as possible, while the file is being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of a Guacamole protocol dump.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1285">line 1285</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line115">line 115</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line152">line 152</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onuuid">onuuid</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the UUID that uniquely identifies this tunnel is known.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">UUID uniquely identifying this tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onuuid">Guacamole.Tunnel#event:onuuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line143">line 143</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Status.html b/doc/1.3.0/guacamole-common-js/Guacamole.Status.html
new file mode 100644
index 0000000..58655a0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Status.html
@@ -0,0 +1,610 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Status</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Status</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Status"><span class="type-signature"></span>new Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A Guacamole status. Each Guacamole status consists of a status code, defined
+by the protocol, and an optional human-readable message, usually only
+included for debugging convenience.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Guacamole status code, as defined by Guacamole.Status.Code.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An optional human-readable message.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".Code"><span class="type-signature">(static) </span>Code<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Enumeration of all Guacamole status codes.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="code"><span class="type-signature"></span>code<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole status code.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line47">line 47</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.Status.html#.Code">Guacamole.Status.Code</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="message"><span class="type-signature"></span>message<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    An arbitrary human-readable message associated with this status, if any.
+The human-readable message is not required, and is generally provided
+for debugging purposes only. For user feedback, it is better to translate
+the Guacamole status code into a message.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isError"><span class="type-signature"></span>isError<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this status represents an error.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this status represents an error, false
+                   otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.StringReader.html b/doc/1.3.0/guacamole-common-js/Guacamole.StringReader.html
new file mode 100644
index 0000000..b7820ac
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.StringReader.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringReader"><span class="type-signature"></span>new StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly text data. Note that this object will overwrite any installed event
+handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line165">line 165</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ontext">ontext</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of text data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line159">line 159</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.StringWriter.html b/doc/1.3.0/guacamole-common-js/Guacamole.StringWriter.html
new file mode 100644
index 0000000..29f350d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.StringWriter.html
@@ -0,0 +1,603 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringWriter"><span class="type-signature"></span>new StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with text
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line181">line 181</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendText"><span class="type-signature"></span>sendText<span class="signature">(text)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The text to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line172">line 172</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line190">line 190</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.Tunnel.html b/doc/1.3.0/guacamole-common-js/Guacamole.Tunnel.html
new file mode 100644
index 0000000..7ecd650
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.Tunnel.html
@@ -0,0 +1,1698 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Tunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Tunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Tunnel<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Tunnel"><span class="type-signature"></span>new Tunnel<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Core object providing abstract communication for Guacamole. This object
+is a null implementation whose functions do nothing. Guacamole applications
+should use <a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a> instead, or implement their own tunnel based
+on this one.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".INTERNAL_DATA_OPCODE"><span class="type-signature">(static, constant) </span>INTERNAL_DATA_OPCODE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole protocol instruction opcode reserved for arbitrary internal
+use by tunnel implementations. The value of this opcode is guaranteed to be
+the empty string (""). Tunnel implementations may use this opcode for any
+purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+connection stability test pings/responses.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line185">line 185</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".State"><span class="type-signature">(static) </span>State<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All possible tunnel states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line190">line 190</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line115">line 115</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line152">line 152</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onuuid">onuuid</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the UUID that uniquely identifies this tunnel is known.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">UUID uniquely identifying this tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line143">line 143</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.VideoPlayer.html b/doc/1.3.0/guacamole-common-js/Guacamole.VideoPlayer.html
new file mode 100644
index 0000000..d835007
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.VideoPlayer.html
@@ -0,0 +1,766 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VideoPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VideoPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VideoPlayer"><span class="type-signature"></span>new VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract video player which accepts, queues and plays back arbitrary video
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream and rendering the received data to
+the provided Guacamole.Display.VisibleLayer. Data received along the
+provided stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, layer, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.VideoPlayer providing support for the given
+video format. If support for the given video format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read video data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer in which this Guacamole.VideoPlayer should play
+    the received video data.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.VideoPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.VideoPlayer, and thus will be properly handled
+by Guacamole.VideoPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.VideoPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.VideoPlayer that all video up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued video data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line39">line 39</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.WebSocketTunnel.html b/doc/1.3.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
new file mode 100644
index 0000000..92a2e9b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
@@ -0,0 +1,1669 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: WebSocketTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: WebSocketTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="WebSocketTunnel"><span class="type-signature"></span>new WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the WebSocket tunneling service.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line770">line 770</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line115">line 115</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line96">line 96</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line152">line 152</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line170">line 170</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line160">line 160</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onuuid">onuuid</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the UUID that uniquely identifies this tunnel is known.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>The</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">UUID uniquely identifying this tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onuuid">Guacamole.Tunnel#event:onuuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line143">line 143</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:54 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/Guacamole.html b/doc/1.3.0/guacamole-common-js/Guacamole.html
new file mode 100644
index 0000000..eaec26f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Guacamole.html
@@ -0,0 +1,332 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Guacamole</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Guacamole</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Guacamole</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">The namespace used by the Guacamole JavaScript API. Absolutely all classes
+defined by the Guacamole JavaScript API will be within this namespace.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Namespace.js.html">Namespace.js</a>, <a href="Namespace.js.html#line26">line 26</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobReader.html">BlobReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobWriter.html">BlobWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Client.html">Client</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.DataURIReader.html">DataURIReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Display.html">Display</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputSink.html">InputSink</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputStream.html">InputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.IntegerPool.html">IntegerPool</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.JSONReader.html">JSONReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Keyboard.html">Keyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Layer.html">Layer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.html">Mouse</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Object.html">Object</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OutputStream.html">OutputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Parser.html">Parser</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.SessionRecording.html">SessionRecording</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Status.html">Status</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringReader.html">StringReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringWriter.html">StringWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Tunnel.html">Tunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Namespaces</h3>
+
+        <dl>
+            <dt><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".API_VERSION"><span class="type-signature">(static) </span>API_VERSION<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique ID of this version of the Guacamole JavaScript API. This ID will
+be the version string of the guacamole-common-js Maven project, and can be
+used in downstream applications as a sanity check that the proper version
+of the APIs is being used (in case an older version is cached, for example).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Version.js.html">Version.js</a>, <a href="Version.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/InputSink.js.html b/doc/1.3.0/guacamole-common-js/InputSink.js.html
new file mode 100644
index 0000000..567cc07
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/InputSink.js.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputSink.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputSink.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A hidden input field which attempts to keep itself focused at all times,
+ * except when another input field has been intentionally focused, whether
+ * programatically or by the user. The actual underlying input field, returned
+ * by getElement(), may be used as a reliable source of keyboard-related events,
+ * particularly composition and input events which may require a focused input
+ * field to be dispatched at all.
+ *
+ * @constructor
+ */
+Guacamole.InputSink = function InputSink() {
+
+    /**
+     * Reference to this instance of Guacamole.InputSink.
+     *
+     * @private
+     * @type {Guacamole.InputSink}
+     */
+    var sink = this;
+
+    /**
+     * The underlying input field, styled to be invisible.
+     *
+     * @private
+     * @type {Element}
+     */
+    var field = document.createElement('textarea');
+    field.style.position   = 'fixed';
+    field.style.outline    = 'none';
+    field.style.border     = 'none';
+    field.style.margin     = '0';
+    field.style.padding    = '0';
+    field.style.height     = '0';
+    field.style.width      = '0';
+    field.style.left       = '0';
+    field.style.bottom     = '0';
+    field.style.resize     = 'none';
+    field.style.background = 'transparent';
+    field.style.color      = 'transparent';
+
+    // Keep field clear when modified via normal keypresses
+    field.addEventListener("keypress", function clearKeypress(e) {
+        field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via composition events
+    field.addEventListener("compositionend", function clearCompletedComposition(e) {
+        if (e.data)
+            field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via input events
+    field.addEventListener("input", function clearCompletedInput(e) {
+        if (e.data &amp;&amp; !e.isComposing)
+            field.value = '';
+    }, false);
+
+    // Whenever focus is gained, automatically click to ensure cursor is
+    // actually placed within the field (the field may simply be highlighted or
+    // outlined otherwise)
+    field.addEventListener("focus", function focusReceived() {
+        window.setTimeout(function deferRefocus() {
+            field.click();
+            field.select();
+        }, 0);
+    }, true);
+
+    /**
+     * Attempts to focus the underlying input field. The focus attempt occurs
+     * asynchronously, and may silently fail depending on browser restrictions.
+     */
+    this.focus = function focus() {
+        window.setTimeout(function deferRefocus() {
+            field.focus(); // Focus must be deferred to work reliably across browsers
+        }, 0);
+    };
+
+    /**
+     * Returns the underlying input field. This input field MUST be manually
+     * added to the DOM for the Guacamole.InputSink to have any effect.
+     *
+     * @returns {Element}
+     */
+    this.getElement = function getElement() {
+        return field;
+    };
+
+    // Automatically refocus input sink if part of DOM
+    document.addEventListener("keydown", function refocusSink(e) {
+
+        // Do not refocus if focus is on an input field
+        var focused = document.activeElement;
+        if (focused &amp;&amp; focused !== document.body) {
+
+            // Only consider focused input fields which are actually visible
+            var rect = focused.getBoundingClientRect();
+            if (rect.left + rect.width > 0 &amp;&amp; rect.top + rect.height > 0)
+                return;
+
+        }
+
+        // Refocus input sink instead of handling click
+        sink.focus();
+
+    }, true);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/InputStream.js.html b/doc/1.3.0/guacamole-common-js/InputStream.js.html
new file mode 100644
index 0000000..f0621a3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/InputStream.js.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An input stream abstraction used by the Guacamole client to facilitate
+ * transfer of files or other binary data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.InputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when a blob of data is received.
+     * 
+     * @event
+     * @param {String} data The received base64 data.
+     */
+    this.onblob = null;
+
+    /**
+     * Called when this stream is closed.
+     * 
+     * @event
+     */
+    this.onend = null;
+
+    /**
+     * Acknowledges the receipt of a blob.
+     * 
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(message, code) {
+        client.sendAck(guac_stream.index, message, code);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/IntegerPool.js.html b/doc/1.3.0/guacamole-common-js/IntegerPool.js.html
new file mode 100644
index 0000000..2136253
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/IntegerPool.js.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: IntegerPool.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: IntegerPool.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Integer pool which returns consistently increasing integers while integers
+ * are in use, and previously-used integers when possible.
+ * @constructor 
+ */
+Guacamole.IntegerPool = function() {
+
+    /**
+     * Reference to this integer pool.
+     *
+     * @private
+     */
+    var guac_pool = this;
+
+    /**
+     * Array of available integers.
+     *
+     * @private
+     * @type {Number[]}
+     */
+    var pool = [];
+
+    /**
+     * The next integer to return if no more integers remain.
+     * @type {Number}
+     */
+    this.next_int = 0;
+
+    /**
+     * Returns the next available integer in the pool. If possible, a previously
+     * used integer will be returned.
+     * 
+     * @return {Number} The next available integer.
+     */
+    this.next = function() {
+
+        // If free'd integers exist, return one of those
+        if (pool.length > 0)
+            return pool.shift();
+
+        // Otherwise, return a new integer
+        return guac_pool.next_int++;
+
+    };
+
+    /**
+     * Frees the given integer, allowing it to be reused.
+     * 
+     * @param {Number} integer The integer to free.
+     */
+    this.free = function(integer) {
+        pool.push(integer);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/JSONReader.js.html b/doc/1.3.0/guacamole-common-js/JSONReader.js.html
new file mode 100644
index 0000000..1a5a878
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/JSONReader.js.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: JSONReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: JSONReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a JavaScript object by appending them to each other, in
+ * order, and decoding the result as JSON. Note that this object will overwrite
+ * any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that JSON will be read from.
+ */
+Guacamole.JSONReader = function guacamoleJSONReader(stream) {
+
+    /**
+     * Reference to this Guacamole.JSONReader.
+     *
+     * @private
+     * @type {Guacamole.JSONReader}
+     */
+    var guacReader = this;
+
+    /**
+     * Wrapped Guacamole.StringReader.
+     *
+     * @private
+     * @type {Guacamole.StringReader}
+     */
+    var stringReader = new Guacamole.StringReader(stream);
+
+    /**
+     * All JSON read thus far.
+     *
+     * @private
+     * @type {String}
+     */
+    var json = '';
+
+    /**
+     * Returns the current length of this Guacamole.JSONReader, in characters.
+     *
+     * @return {Number}
+     *     The current length of this Guacamole.JSONReader.
+     */
+    this.getLength = function getLength() {
+        return json.length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.JSONReader as a JavaScript
+     * object.
+     *
+     * @return {Object}
+     *     The contents of this Guacamole.JSONReader, as parsed from the JSON
+     *     contents of the input stream.
+     */
+    this.getJSON = function getJSON() {
+        return JSON.parse(json);
+    };
+
+    // Append all received text
+    stringReader.ontext = function ontext(text) {
+
+        // Append received text
+        json += text;
+
+        // Call handler, if present
+        if (guacReader.onprogress)
+            guacReader.onprogress(text.length);
+
+    };
+
+    // Simply call onend when end received
+    stringReader.onend = function onend() {
+        if (guacReader.onend)
+            guacReader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length
+     *     The number of characters received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Keyboard.js.html b/doc/1.3.0/guacamole-common-js/Keyboard.js.html
new file mode 100644
index 0000000..e53d65d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Keyboard.js.html
@@ -0,0 +1,1574 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Keyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Keyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser and cross-keyboard keyboard for a specific element.
+ * Browser and keyboard layout variation is abstracted away, providing events
+ * which represent keys as their corresponding X11 keysym.
+ * 
+ * @constructor
+ * @param {Element|Document} [element]
+ *    The Element to use to provide keyboard events. If omitted, at least one
+ *    Element must be manually provided through the listenTo() function for
+ *    the Guacamole.Keyboard instance to have any effect.
+ */
+Guacamole.Keyboard = function Keyboard(element) {
+
+    /**
+     * Reference to this Guacamole.Keyboard.
+     * @private
+     */
+    var guac_keyboard = this;
+
+    /**
+     * An integer value which uniquely identifies this Guacamole.Keyboard
+     * instance with respect to other Guacamole.Keyboard instances.
+     *
+     * @private
+     * @type {Number}
+     */
+    var guacKeyboardID = Guacamole.Keyboard._nextID++;
+
+    /**
+     * The name of the property which is added to event objects via markEvent()
+     * to note that they have already been handled by this Guacamole.Keyboard.
+     *
+     * @private
+     * @constant
+     * @type {String}
+     */
+    var EVENT_MARKER = '_GUAC_KEYBOARD_HANDLED_BY_' + guacKeyboardID;
+
+    /**
+     * Fired whenever the user presses a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     * @return {Boolean} true if the key event should be allowed through to the
+     *                   browser, false otherwise.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * Set of known platform-specific or browser-specific quirks which must be
+     * accounted for to properly interpret key events, even if the only way to
+     * reliably detect that quirk is to platform/browser-sniff.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var quirks = {
+
+        /**
+         * Whether keyup events are universally unreliable.
+         *
+         * @type {Boolean}
+         */
+        keyupUnreliable: false,
+
+        /**
+         * Whether the Alt key is actually a modifier for typable keys and is
+         * thus never used for keyboard shortcuts.
+         *
+         * @type {Boolean}
+         */
+        altIsTypableOnly: false,
+
+        /**
+         * Whether we can rely on receiving a keyup event for the Caps Lock
+         * key.
+         *
+         * @type {Boolean}
+         */
+        capsLockKeyupUnreliable: false
+
+    };
+
+    // Set quirk flags depending on platform/browser, if such information is
+    // available
+    if (navigator &amp;&amp; navigator.platform) {
+
+        // All keyup events are unreliable on iOS (sadly)
+        if (navigator.platform.match(/ipad|iphone|ipod/i))
+            quirks.keyupUnreliable = true;
+
+        // The Alt key on Mac is never used for keyboard shortcuts, and the
+        // Caps Lock key never dispatches keyup events
+        else if (navigator.platform.match(/^mac/i)) {
+            quirks.altIsTypableOnly = true;
+            quirks.capsLockKeyupUnreliable = true;
+        }
+
+    }
+
+    /**
+     * A key event having a corresponding timestamp. This event is non-specific.
+     * Its subclasses should be used instead when recording specific key
+     * events.
+     *
+     * @private
+     * @constructor
+     */
+    var KeyEvent = function() {
+
+        /**
+         * Reference to this key event.
+         */
+        var key_event = this;
+
+        /**
+         * An arbitrary timestamp in milliseconds, indicating this event's
+         * position in time relative to other events.
+         *
+         * @type {Number}
+         */
+        this.timestamp = new Date().getTime();
+
+        /**
+         * Whether the default action of this key event should be prevented.
+         *
+         * @type {Boolean}
+         */
+        this.defaultPrevented = false;
+
+        /**
+         * The keysym of the key associated with this key event, as determined
+         * by a best-effort guess using available event properties and keyboard
+         * state.
+         *
+         * @type {Number}
+         */
+        this.keysym = null;
+
+        /**
+         * Whether the keysym value of this key event is known to be reliable.
+         * If false, the keysym may still be valid, but it's only a best guess,
+         * and future key events may be a better source of information.
+         *
+         * @type {Boolean}
+         */
+        this.reliable = false;
+
+        /**
+         * Returns the number of milliseconds elapsed since this event was
+         * received.
+         *
+         * @return {Number} The number of milliseconds elapsed since this
+         *                  event was received.
+         */
+        this.getAge = function() {
+            return new Date().getTime() - key_event.timestamp;
+        };
+
+    };
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key pressed.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               pressed, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key pressed, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key pressed, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeydownEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key pressed.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key pressed, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key pressed, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key pressed, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_key_identifier(key, location)
+                    || keysym_from_keycode(keyCode, location);
+
+        /**
+         * Whether the keyup following this keydown event is known to be
+         * reliable. If false, we cannot rely on the keyup event to occur.
+         *
+         * @type {Boolean}
+         */
+        this.keyupReliable = !quirks.keyupUnreliable;
+
+        // DOM3 and keyCode are reliable sources if the corresponding key is
+        // not a printable key
+        if (this.keysym &amp;&amp; !isPrintable(this.keysym))
+            this.reliable = true;
+
+        // Use legacy keyIdentifier as a last resort, if it looks sane
+        if (!this.keysym &amp;&amp; key_identifier_sane(keyCode, keyIdentifier))
+            this.keysym = keysym_from_key_identifier(keyIdentifier, location, guac_keyboard.modifiers.shift);
+
+        // If a key is pressed while meta is held down, the keyup will
+        // never be sent in Chrome (bug #108404)
+        if (guac_keyboard.modifiers.meta &amp;&amp; this.keysym !== 0xFFE7 &amp;&amp; this.keysym !== 0xFFE8)
+            this.keyupReliable = false;
+
+        // We cannot rely on receiving keyup for Caps Lock on certain platforms
+        else if (this.keysym === 0xFFE5 &amp;&amp; quirks.capsLockKeyupUnreliable)
+            this.keyupReliable = false;
+
+        // Determine whether default action for Alt+combinations must be prevented
+        var prevent_alt = !guac_keyboard.modifiers.ctrl &amp;&amp; !quirks.altIsTypableOnly;
+
+        // Determine whether default action for Ctrl+combinations must be prevented
+        var prevent_ctrl = !guac_keyboard.modifiers.alt;
+
+        // We must rely on the (potentially buggy) keyIdentifier if preventing
+        // the default action is important
+        if ((prevent_ctrl &amp;&amp; guac_keyboard.modifiers.ctrl)
+         || (prevent_alt  &amp;&amp; guac_keyboard.modifiers.alt)
+         || guac_keyboard.modifiers.meta
+         || guac_keyboard.modifiers.hyper)
+            this.reliable = true;
+
+        // Record most recently known keysym by associated key code
+        recentKeysym[keyCode] = this.keysym;
+
+    };
+
+    KeydownEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which MUST be
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} charCode The Unicode codepoint of the character that
+     *                          would be typed by the key pressed.
+     */
+    var KeypressEvent = function(charCode) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The Unicode codepoint of the character that would be typed by the
+         * key pressed.
+         *
+         * @type {Number}
+         */
+        this.charCode = charCode;
+
+        // Pull keysym from char code
+        this.keysym = keysym_from_charcode(charCode);
+
+        // Keypress is always reliable
+        this.reliable = true;
+
+    };
+
+    KeypressEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key released.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               released, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key released, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key released, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeyupEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key released.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key released, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key released, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key released, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_keycode(keyCode, location)
+                    || keysym_from_key_identifier(key, location); // keyCode is still more reliable for keyup when dead keys are in use
+
+        // Fall back to the most recently pressed keysym associated with the
+        // keyCode if the inferred key doesn't seem to actually be pressed
+        if (!guac_keyboard.pressed[this.keysym])
+            this.keysym = recentKeysym[keyCode] || this.keysym;
+
+        // Keyup is as reliable as it will ever be
+        this.reliable = true;
+
+    };
+
+    KeyupEvent.prototype = new KeyEvent();
+
+    /**
+     * An array of recorded events, which can be instances of the private
+     * KeydownEvent, KeypressEvent, and KeyupEvent classes.
+     *
+     * @private
+     * @type {KeyEvent[]}
+     */
+    var eventLog = [];
+
+    /**
+     * Map of known JavaScript keycodes which do not map to typable characters
+     * to their X11 keysym equivalents.
+     * @private
+     */
+    var keycodeKeysyms = {
+        8:   [0xFF08], // backspace
+        9:   [0xFF09], // tab
+        12:  [0xFF0B, 0xFF0B, 0xFF0B, 0xFFB5], // clear       / KP 5
+        13:  [0xFF0D], // enter
+        16:  [0xFFE1, 0xFFE1, 0xFFE2], // shift
+        17:  [0xFFE3, 0xFFE3, 0xFFE4], // ctrl
+        18:  [0xFFE9, 0xFFE9, 0xFE03], // alt
+        19:  [0xFF13], // pause/break
+        20:  [0xFFE5], // caps lock
+        27:  [0xFF1B], // escape
+        32:  [0x0020], // space
+        33:  [0xFF55, 0xFF55, 0xFF55, 0xFFB9], // page up     / KP 9
+        34:  [0xFF56, 0xFF56, 0xFF56, 0xFFB3], // page down   / KP 3
+        35:  [0xFF57, 0xFF57, 0xFF57, 0xFFB1], // end         / KP 1
+        36:  [0xFF50, 0xFF50, 0xFF50, 0xFFB7], // home        / KP 7
+        37:  [0xFF51, 0xFF51, 0xFF51, 0xFFB4], // left arrow  / KP 4
+        38:  [0xFF52, 0xFF52, 0xFF52, 0xFFB8], // up arrow    / KP 8
+        39:  [0xFF53, 0xFF53, 0xFF53, 0xFFB6], // right arrow / KP 6
+        40:  [0xFF54, 0xFF54, 0xFF54, 0xFFB2], // down arrow  / KP 2
+        45:  [0xFF63, 0xFF63, 0xFF63, 0xFFB0], // insert      / KP 0
+        46:  [0xFFFF, 0xFFFF, 0xFFFF, 0xFFAE], // delete      / KP decimal
+        91:  [0xFFEB], // left window key (hyper_l)
+        92:  [0xFF67], // right window key (menu key?)
+        93:  null,     // select key
+        96:  [0xFFB0], // KP 0
+        97:  [0xFFB1], // KP 1
+        98:  [0xFFB2], // KP 2
+        99:  [0xFFB3], // KP 3
+        100: [0xFFB4], // KP 4
+        101: [0xFFB5], // KP 5
+        102: [0xFFB6], // KP 6
+        103: [0xFFB7], // KP 7
+        104: [0xFFB8], // KP 8
+        105: [0xFFB9], // KP 9
+        106: [0xFFAA], // KP multiply
+        107: [0xFFAB], // KP add
+        109: [0xFFAD], // KP subtract
+        110: [0xFFAE], // KP decimal
+        111: [0xFFAF], // KP divide
+        112: [0xFFBE], // f1
+        113: [0xFFBF], // f2
+        114: [0xFFC0], // f3
+        115: [0xFFC1], // f4
+        116: [0xFFC2], // f5
+        117: [0xFFC3], // f6
+        118: [0xFFC4], // f7
+        119: [0xFFC5], // f8
+        120: [0xFFC6], // f9
+        121: [0xFFC7], // f10
+        122: [0xFFC8], // f11
+        123: [0xFFC9], // f12
+        144: [0xFF7F], // num lock
+        145: [0xFF14], // scroll lock
+        225: [0xFE03]  // altgraph (iso_level3_shift)
+    };
+
+    /**
+     * Map of known JavaScript keyidentifiers which do not map to typable
+     * characters to their unshifted X11 keysym equivalents.
+     * @private
+     */
+    var keyidentifier_keysym = {
+        "Again": [0xFF66],
+        "AllCandidates": [0xFF3D],
+        "Alphanumeric": [0xFF30],
+        "Alt": [0xFFE9, 0xFFE9, 0xFE03],
+        "Attn": [0xFD0E],
+        "AltGraph": [0xFE03],
+        "ArrowDown": [0xFF54],
+        "ArrowLeft": [0xFF51],
+        "ArrowRight": [0xFF53],
+        "ArrowUp": [0xFF52],
+        "Backspace": [0xFF08],
+        "CapsLock": [0xFFE5],
+        "Cancel": [0xFF69],
+        "Clear": [0xFF0B],
+        "Convert": [0xFF21],
+        "Copy": [0xFD15],
+        "Crsel": [0xFD1C],
+        "CrSel": [0xFD1C],
+        "CodeInput": [0xFF37],
+        "Compose": [0xFF20],
+        "Control": [0xFFE3, 0xFFE3, 0xFFE4],
+        "ContextMenu": [0xFF67],
+        "Delete": [0xFFFF],
+        "Down": [0xFF54],
+        "End": [0xFF57],
+        "Enter": [0xFF0D],
+        "EraseEof": [0xFD06],
+        "Escape": [0xFF1B],
+        "Execute": [0xFF62],
+        "Exsel": [0xFD1D],
+        "ExSel": [0xFD1D],
+        "F1": [0xFFBE],
+        "F2": [0xFFBF],
+        "F3": [0xFFC0],
+        "F4": [0xFFC1],
+        "F5": [0xFFC2],
+        "F6": [0xFFC3],
+        "F7": [0xFFC4],
+        "F8": [0xFFC5],
+        "F9": [0xFFC6],
+        "F10": [0xFFC7],
+        "F11": [0xFFC8],
+        "F12": [0xFFC9],
+        "F13": [0xFFCA],
+        "F14": [0xFFCB],
+        "F15": [0xFFCC],
+        "F16": [0xFFCD],
+        "F17": [0xFFCE],
+        "F18": [0xFFCF],
+        "F19": [0xFFD0],
+        "F20": [0xFFD1],
+        "F21": [0xFFD2],
+        "F22": [0xFFD3],
+        "F23": [0xFFD4],
+        "F24": [0xFFD5],
+        "Find": [0xFF68],
+        "GroupFirst": [0xFE0C],
+        "GroupLast": [0xFE0E],
+        "GroupNext": [0xFE08],
+        "GroupPrevious": [0xFE0A],
+        "FullWidth": null,
+        "HalfWidth": null,
+        "HangulMode": [0xFF31],
+        "Hankaku": [0xFF29],
+        "HanjaMode": [0xFF34],
+        "Help": [0xFF6A],
+        "Hiragana": [0xFF25],
+        "HiraganaKatakana": [0xFF27],
+        "Home": [0xFF50],
+        "Hyper": [0xFFED, 0xFFED, 0xFFEE],
+        "Insert": [0xFF63],
+        "JapaneseHiragana": [0xFF25],
+        "JapaneseKatakana": [0xFF26],
+        "JapaneseRomaji": [0xFF24],
+        "JunjaMode": [0xFF38],
+        "KanaMode": [0xFF2D],
+        "KanjiMode": [0xFF21],
+        "Katakana": [0xFF26],
+        "Left": [0xFF51],
+        "Meta": [0xFFE7, 0xFFE7, 0xFFE8],
+        "ModeChange": [0xFF7E],
+        "NumLock": [0xFF7F],
+        "PageDown": [0xFF56],
+        "PageUp": [0xFF55],
+        "Pause": [0xFF13],
+        "Play": [0xFD16],
+        "PreviousCandidate": [0xFF3E],
+        "PrintScreen": [0xFF61],
+        "Redo": [0xFF66],
+        "Right": [0xFF53],
+        "RomanCharacters": null,
+        "Scroll": [0xFF14],
+        "Select": [0xFF60],
+        "Separator": [0xFFAC],
+        "Shift": [0xFFE1, 0xFFE1, 0xFFE2],
+        "SingleCandidate": [0xFF3C],
+        "Super": [0xFFEB, 0xFFEB, 0xFFEC],
+        "Tab": [0xFF09],
+        "UIKeyInputDownArrow": [0xFF54],
+        "UIKeyInputEscape": [0xFF1B],
+        "UIKeyInputLeftArrow": [0xFF51],
+        "UIKeyInputRightArrow": [0xFF53],
+        "UIKeyInputUpArrow": [0xFF52],
+        "Up": [0xFF52],
+        "Undo": [0xFF65],
+        "Win": [0xFFEB],
+        "Zenkaku": [0xFF28],
+        "ZenkakuHankaku": [0xFF2A]
+    };
+
+    /**
+     * All keysyms which should not repeat when held down.
+     * @private
+     */
+    var no_repeat = {
+        0xFE03: true, // ISO Level 3 Shift (AltGr)
+        0xFFE1: true, // Left shift
+        0xFFE2: true, // Right shift
+        0xFFE3: true, // Left ctrl 
+        0xFFE4: true, // Right ctrl 
+        0xFFE5: true, // Caps Lock
+        0xFFE7: true, // Left meta 
+        0xFFE8: true, // Right meta 
+        0xFFE9: true, // Left alt
+        0xFFEA: true, // Right alt
+        0xFFEB: true, // Left hyper
+        0xFFEC: true  // Right hyper
+    };
+
+    /**
+     * All modifiers and their states.
+     */
+    this.modifiers = new Guacamole.Keyboard.ModifierState();
+        
+    /**
+     * The state of every key, indexed by keysym. If a particular key is
+     * pressed, the value of pressed for that keysym will be true. If a key
+     * is not currently pressed, it will not be defined. 
+     */
+    this.pressed = {};
+
+    /**
+     * The state of every key, indexed by keysym, for strictly those keys whose
+     * status has been indirectly determined thorugh observation of other key
+     * events. If a particular key is implicitly pressed, the value of
+     * implicitlyPressed for that keysym will be true. If a key
+     * is not currently implicitly pressed (the key is not pressed OR the state
+     * of the key is explicitly known), it will not be defined.
+     *
+     * @private
+     * @tyle {Object.&lt;Number, Boolean>}
+     */
+    var implicitlyPressed = {};
+
+    /**
+     * The last result of calling the onkeydown handler for each key, indexed
+     * by keysym. This is used to prevent/allow default actions for key events,
+     * even when the onkeydown handler cannot be called again because the key
+     * is (theoretically) still pressed.
+     *
+     * @private
+     */
+    var last_keydown_result = {};
+
+    /**
+     * The keysym most recently associated with a given keycode when keydown
+     * fired. This object maps keycodes to keysyms.
+     *
+     * @private
+     * @type {Object.&lt;Number, Number>}
+     */
+    var recentKeysym = {};
+
+    /**
+     * Timeout before key repeat starts.
+     * @private
+     */
+    var key_repeat_timeout = null;
+
+    /**
+     * Interval which presses and releases the last key pressed while that
+     * key is still being held down.
+     * @private
+     */
+    var key_repeat_interval = null;
+
+    /**
+     * Given an array of keysyms indexed by location, returns the keysym
+     * for the given location, or the keysym for the standard location if
+     * undefined.
+     * 
+     * @private
+     * @param {Number[]} keysyms
+     *     An array of keysyms, where the index of the keysym in the array is
+     *     the location value.
+     *
+     * @param {Number} location
+     *     The location on the keyboard corresponding to the key pressed, as
+     *     defined at: http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var get_keysym = function get_keysym(keysyms, location) {
+
+        if (!keysyms)
+            return null;
+
+        return keysyms[location] || keysyms[0];
+    };
+
+    /**
+     * Returns true if the given keysym corresponds to a printable character,
+     * false otherwise.
+     *
+     * @param {Number} keysym
+     *     The keysym to check.
+     *
+     * @returns {Boolean}
+     *     true if the given keysym corresponds to a printable character,
+     *     false otherwise.
+     */
+    var isPrintable = function isPrintable(keysym) {
+
+        // Keysyms with Unicode equivalents are printable
+        return (keysym >= 0x00 &amp;&amp; keysym &lt;= 0xFF)
+            || (keysym &amp; 0xFFFF0000) === 0x01000000;
+
+    };
+
+    function keysym_from_key_identifier(identifier, location, shifted) {
+
+        if (!identifier)
+            return null;
+
+        var typedCharacter;
+
+        // If identifier is U+xxxx, decode Unicode character 
+        var unicodePrefixLocation = identifier.indexOf("U+");
+        if (unicodePrefixLocation >= 0) {
+            var hex = identifier.substring(unicodePrefixLocation+2);
+            typedCharacter = String.fromCharCode(parseInt(hex, 16));
+        }
+
+        // If single character and not keypad, use that as typed character
+        else if (identifier.length === 1 &amp;&amp; location !== 3)
+            typedCharacter = identifier;
+
+        // Otherwise, look up corresponding keysym
+        else
+            return get_keysym(keyidentifier_keysym[identifier], location);
+
+        // Alter case if necessary
+        if (shifted === true)
+            typedCharacter = typedCharacter.toUpperCase();
+        else if (shifted === false)
+            typedCharacter = typedCharacter.toLowerCase();
+
+        // Get codepoint
+        var codepoint = typedCharacter.charCodeAt(0);
+        return keysym_from_charcode(codepoint);
+
+    }
+
+    function isControlCharacter(codepoint) {
+        return codepoint &lt;= 0x1F || (codepoint >= 0x7F &amp;&amp; codepoint &lt;= 0x9F);
+    }
+
+    function keysym_from_charcode(codepoint) {
+
+        // Keysyms for control characters
+        if (isControlCharacter(codepoint)) return 0xFF00 | codepoint;
+
+        // Keysyms for ASCII chars
+        if (codepoint >= 0x0000 &amp;&amp; codepoint &lt;= 0x00FF)
+            return codepoint;
+
+        // Keysyms for Unicode
+        if (codepoint >= 0x0100 &amp;&amp; codepoint &lt;= 0x10FFFF)
+            return 0x01000000 | codepoint;
+
+        return null;
+
+    }
+
+    function keysym_from_keycode(keyCode, location) {
+        return get_keysym(keycodeKeysyms[keyCode], location);
+    }
+
+    /**
+     * Heuristically detects if the legacy keyIdentifier property of
+     * a keydown/keyup event looks incorrectly derived. Chrome, and
+     * presumably others, will produce the keyIdentifier by assuming
+     * the keyCode is the Unicode codepoint for that key. This is not
+     * correct in all cases.
+     *
+     * @private
+     * @param {Number} keyCode
+     *     The keyCode from a browser keydown/keyup event.
+     *
+     * @param {String} keyIdentifier
+     *     The legacy keyIdentifier from a browser keydown/keyup event.
+     *
+     * @returns {Boolean}
+     *     true if the keyIdentifier looks sane, false if the keyIdentifier
+     *     appears incorrectly derived or is missing entirely.
+     */
+    var key_identifier_sane = function key_identifier_sane(keyCode, keyIdentifier) {
+
+        // Missing identifier is not sane
+        if (!keyIdentifier)
+            return false;
+
+        // Assume non-Unicode keyIdentifier values are sane
+        var unicodePrefixLocation = keyIdentifier.indexOf("U+");
+        if (unicodePrefixLocation === -1)
+            return true;
+
+        // If the Unicode codepoint isn't identical to the keyCode,
+        // then the identifier is likely correct
+        var codepoint = parseInt(keyIdentifier.substring(unicodePrefixLocation+2), 16);
+        if (keyCode !== codepoint)
+            return true;
+
+        // The keyCodes for A-Z and 0-9 are actually identical to their
+        // Unicode codepoints
+        if ((keyCode >= 65 &amp;&amp; keyCode &lt;= 90) || (keyCode >= 48 &amp;&amp; keyCode &lt;= 57))
+            return true;
+
+        // The keyIdentifier does NOT appear sane
+        return false;
+
+    };
+
+    /**
+     * Marks a key as pressed, firing the keydown event if registered. Key
+     * repeat for the pressed key will start after a delay if that key is
+     * not a modifier. The return value of this function depends on the
+     * return value of the keydown event handler, if any.
+     * 
+     * @param {Number} keysym The keysym of the key to press.
+     * @return {Boolean} true if event should NOT be canceled, false otherwise.
+     */
+    this.press = function(keysym) {
+
+        // Don't bother with pressing the key if the key is unknown
+        if (keysym === null) return;
+
+        // Only press if released
+        if (!guac_keyboard.pressed[keysym]) {
+
+            // Mark key as pressed
+            guac_keyboard.pressed[keysym] = true;
+
+            // Send key event
+            if (guac_keyboard.onkeydown) {
+                var result = guac_keyboard.onkeydown(keysym);
+                last_keydown_result[keysym] = result;
+
+                // Stop any current repeat
+                window.clearTimeout(key_repeat_timeout);
+                window.clearInterval(key_repeat_interval);
+
+                // Repeat after a delay as long as pressed
+                if (!no_repeat[keysym])
+                    key_repeat_timeout = window.setTimeout(function() {
+                        key_repeat_interval = window.setInterval(function() {
+                            guac_keyboard.onkeyup(keysym);
+                            guac_keyboard.onkeydown(keysym);
+                        }, 50);
+                    }, 500);
+
+                return result;
+            }
+        }
+
+        // Return the last keydown result by default, resort to false if unknown
+        return last_keydown_result[keysym] || false;
+
+    };
+
+    /**
+     * Marks a key as released, firing the keyup event if registered.
+     * 
+     * @param {Number} keysym The keysym of the key to release.
+     */
+    this.release = function(keysym) {
+
+        // Only release if pressed
+        if (guac_keyboard.pressed[keysym]) {
+            
+            // Mark key as released
+            delete guac_keyboard.pressed[keysym];
+            delete implicitlyPressed[keysym];
+
+            // Stop repeat
+            window.clearTimeout(key_repeat_timeout);
+            window.clearInterval(key_repeat_interval);
+
+            // Send key event
+            if (keysym !== null &amp;&amp; guac_keyboard.onkeyup)
+                guac_keyboard.onkeyup(keysym);
+
+        }
+
+    };
+
+    /**
+     * Presses and releases the keys necessary to type the given string of
+     * text.
+     *
+     * @param {String} str
+     *     The string to type.
+     */
+    this.type = function type(str) {
+
+        // Press/release the key corresponding to each character in the string
+        for (var i = 0; i &lt; str.length; i++) {
+
+            // Determine keysym of current character
+            var codepoint = str.codePointAt ? str.codePointAt(i) : str.charCodeAt(i);
+            var keysym = keysym_from_charcode(codepoint);
+
+            // Press and release key for current character
+            guac_keyboard.press(keysym);
+            guac_keyboard.release(keysym);
+
+        }
+
+    };
+
+    /**
+     * Resets the state of this keyboard, releasing all keys, and firing keyup
+     * events for each released key.
+     */
+    this.reset = function() {
+
+        // Release all pressed keys
+        for (var keysym in guac_keyboard.pressed)
+            guac_keyboard.release(parseInt(keysym));
+
+        // Clear event log
+        eventLog = [];
+
+    };
+
+    /**
+     * Given the remote and local state of a particular key, resynchronizes the
+     * remote state of that key with the local state through pressing or
+     * releasing keysyms.
+     *
+     * @private
+     * @param {Boolean} remoteState
+     *     Whether the key is currently pressed remotely.
+     *
+     * @param {Boolean} localState
+     *     Whether the key is currently pressed remotely locally. If the state
+     *     of the key is not known, this may be undefined.
+     *
+     * @param {Number[]} keysyms
+     *     The keysyms which represent the key being updated.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var updateModifierState = function updateModifierState(remoteState,
+        localState, keysyms, keyEvent) {
+
+        var i;
+
+        // Do not trust changes in modifier state for events directly involving
+        // that modifier: (1) the flag may erroneously be cleared despite
+        // another version of the same key still being held and (2) the change
+        // in flag may be due to the current event being processed, thus
+        // updating things here is at best redundant and at worst incorrect
+        if (keysyms.indexOf(keyEvent.keysym) !== -1)
+            return;
+
+        // Release all related keys if modifier is implicitly released
+        if (remoteState &amp;&amp; localState === false) {
+            for (i = 0; i &lt; keysyms.length; i++) {
+                guac_keyboard.release(keysyms[i]);
+            }
+        }
+
+        // Press if modifier is implicitly pressed
+        else if (!remoteState &amp;&amp; localState) {
+
+            // Verify that modifier flag isn't already pressed or already set
+            // due to another version of the same key being held down
+            for (i = 0; i &lt; keysyms.length; i++) {
+                if (guac_keyboard.pressed[keysyms[i]])
+                    return;
+            }
+
+            // Mark as implicitly pressed only if there is other information
+            // within the key event relating to a different key. Some
+            // platforms, such as iOS, will send essentially empty key events
+            // for modifier keys, using only the modifier flags to signal the
+            // identity of the key.
+            var keysym = keysyms[0];
+            if (keyEvent.keysym)
+                implicitlyPressed[keysym] = true;
+
+            guac_keyboard.press(keysym);
+
+        }
+
+    };
+
+    /**
+     * Given a keyboard event, updates the local modifier state and remote
+     * key state based on the modifier flags within the event. This function
+     * pays no attention to keycodes.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     The keyboard event containing the flags to update.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var syncModifierStates = function syncModifierStates(e, keyEvent) {
+
+        // Get state
+        var state = Guacamole.Keyboard.ModifierState.fromKeyboardEvent(e);
+
+        // Resync state of alt
+        updateModifierState(guac_keyboard.modifiers.alt, state.alt, [
+            0xFFE9, // Left alt
+            0xFFEA, // Right alt
+            0xFE03  // AltGr
+        ], keyEvent);
+
+        // Resync state of shift
+        updateModifierState(guac_keyboard.modifiers.shift, state.shift, [
+            0xFFE1, // Left shift
+            0xFFE2  // Right shift
+        ], keyEvent);
+
+        // Resync state of ctrl
+        updateModifierState(guac_keyboard.modifiers.ctrl, state.ctrl, [
+            0xFFE3, // Left ctrl
+            0xFFE4  // Right ctrl
+        ], keyEvent);
+
+        // Resync state of meta
+        updateModifierState(guac_keyboard.modifiers.meta, state.meta, [
+            0xFFE7, // Left meta
+            0xFFE8  // Right meta
+        ], keyEvent);
+
+        // Resync state of hyper
+        updateModifierState(guac_keyboard.modifiers.hyper, state.hyper, [
+            0xFFEB, // Left hyper
+            0xFFEC  // Right hyper
+        ], keyEvent);
+
+        // Update state
+        guac_keyboard.modifiers = state;
+
+    };
+
+    /**
+     * Returns whether all currently pressed keys were implicitly pressed. A
+     * key is implicitly pressed if its status was inferred indirectly from
+     * inspection of other key events.
+     *
+     * @private
+     * @returns {Boolean}
+     *     true if all currently pressed keys were implicitly pressed, false
+     *     otherwise.
+     */
+    var isStateImplicit = function isStateImplicit() {
+
+        for (var keysym in guac_keyboard.pressed) {
+            if (!implicitlyPressed[keysym])
+                return false;
+        }
+
+        return true;
+
+    };
+
+    /**
+     * Reads through the event log, removing events from the head of the log
+     * when the corresponding true key presses are known (or as known as they
+     * can be).
+     * 
+     * @private
+     * @return {Boolean} Whether the default action of the latest event should
+     *                   be prevented.
+     */
+    function interpret_events() {
+
+        // Do not prevent default if no event could be interpreted
+        var handled_event = interpret_event();
+        if (!handled_event)
+            return false;
+
+        // Interpret as much as possible
+        var last_event;
+        do {
+            last_event = handled_event;
+            handled_event = interpret_event();
+        } while (handled_event !== null);
+
+        // Reset keyboard state if we cannot expect to receive any further
+        // keyup events
+        if (isStateImplicit())
+            guac_keyboard.reset();
+
+        return last_event.defaultPrevented;
+
+    }
+
+    /**
+     * Releases Ctrl+Alt, if both are currently pressed and the given keysym
+     * looks like a key that may require AltGr.
+     *
+     * @private
+     * @param {Number} keysym The key that was just pressed.
+     */
+    var release_simulated_altgr = function release_simulated_altgr(keysym) {
+
+        // Both Ctrl+Alt must be pressed if simulated AltGr is in use
+        if (!guac_keyboard.modifiers.ctrl || !guac_keyboard.modifiers.alt)
+            return;
+
+        // Assume [A-Z] never require AltGr
+        if (keysym >= 0x0041 &amp;&amp; keysym &lt;= 0x005A)
+            return;
+
+        // Assume [a-z] never require AltGr
+        if (keysym >= 0x0061 &amp;&amp; keysym &lt;= 0x007A)
+            return;
+
+        // Release Ctrl+Alt if the keysym is printable
+        if (keysym &lt;= 0xFF || (keysym &amp; 0xFF000000) === 0x01000000) {
+            guac_keyboard.release(0xFFE3); // Left ctrl 
+            guac_keyboard.release(0xFFE4); // Right ctrl 
+            guac_keyboard.release(0xFFE9); // Left alt
+            guac_keyboard.release(0xFFEA); // Right alt
+        }
+
+    };
+
+    /**
+     * Reads through the event log, interpreting the first event, if possible,
+     * and returning that event. If no events can be interpreted, due to a
+     * total lack of events or the need for more events, null is returned. Any
+     * interpreted events are automatically removed from the log.
+     * 
+     * @private
+     * @return {KeyEvent}
+     *     The first key event in the log, if it can be interpreted, or null
+     *     otherwise.
+     */
+    var interpret_event = function interpret_event() {
+
+        // Peek at first event in log
+        var first = eventLog[0];
+        if (!first)
+            return null;
+
+        // Keydown event
+        if (first instanceof KeydownEvent) {
+
+            var keysym = null;
+            var accepted_events = [];
+
+            // If event itself is reliable, no need to wait for other events
+            if (first.reliable) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // If keydown is immediately followed by a keypress, use the indicated character
+            else if (eventLog[1] instanceof KeypressEvent) {
+                keysym = eventLog[1].keysym;
+                accepted_events = eventLog.splice(0, 2);
+            }
+
+            // If keydown is immediately followed by anything else, then no
+            // keypress can possibly occur to clarify this event, and we must
+            // handle it now
+            else if (eventLog[1]) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // Fire a key press if valid events were found
+            if (accepted_events.length > 0) {
+
+                if (keysym) {
+
+                    // Fire event
+                    release_simulated_altgr(keysym);
+                    var defaultPrevented = !guac_keyboard.press(keysym);
+                    recentKeysym[first.keyCode] = keysym;
+
+                    // Release the key now if we cannot rely on the associated
+                    // keyup event
+                    if (!first.keyupReliable)
+                        guac_keyboard.release(keysym);
+
+                    // Record whether default was prevented
+                    for (var i=0; i&lt;accepted_events.length; i++)
+                        accepted_events[i].defaultPrevented = defaultPrevented;
+
+                }
+
+                return first;
+
+            }
+
+        } // end if keydown
+
+        // Keyup event
+        else if (first instanceof KeyupEvent &amp;&amp; !quirks.keyupUnreliable) {
+
+            // Release specific key if known
+            var keysym = first.keysym;
+            if (keysym) {
+                guac_keyboard.release(keysym);
+                delete recentKeysym[first.keyCode];
+                first.defaultPrevented = true;
+            }
+
+            // Otherwise, fall back to releasing all keys
+            else {
+                guac_keyboard.reset();
+                return first;
+            }
+
+            return eventLog.shift();
+
+        } // end if keyup
+
+        // Ignore any other type of event (keypress by itself is invalid, and
+        // unreliable keyup events should simply be dumped)
+        else
+            return eventLog.shift();
+
+        // No event interpreted
+        return null;
+
+    };
+
+    /**
+     * Returns the keyboard location of the key associated with the given
+     * keyboard event. The location differentiates key events which otherwise
+     * have the same keycode, such as left shift vs. right shift.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     A JavaScript keyboard event, as received through the DOM via a
+     *     "keydown", "keyup", or "keypress" handler.
+     *
+     * @returns {Number}
+     *     The location of the key event on the keyboard, as defined at:
+     *     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var getEventLocation = function getEventLocation(e) {
+
+        // Use standard location, if possible
+        if ('location' in e)
+            return e.location;
+
+        // Failing that, attempt to use deprecated keyLocation
+        if ('keyLocation' in e)
+            return e.keyLocation;
+
+        // If no location is available, assume left side
+        return 0;
+
+    };
+
+    /**
+     * Attempts to mark the given Event as having been handled by this
+     * Guacamole.Keyboard. If the Event has already been marked as handled,
+     * false is returned.
+     *
+     * @param {Event} e
+     *     The Event to mark.
+     *
+     * @returns {Boolean}
+     *     true if the given Event was successfully marked, false if the given
+     *     Event was already marked.
+     */
+    var markEvent = function markEvent(e) {
+
+        // Fail if event is already marked
+        if (e[EVENT_MARKER])
+            return false;
+
+        // Mark event otherwise
+        e[EVENT_MARKER] = true;
+        return true;
+
+    };
+
+    /**
+     * Attaches event listeners to the given Element, automatically translating
+     * received key, input, and composition events into simple keydown/keyup
+     * events signalled through this Guacamole.Keyboard's onkeydown and
+     * onkeyup handlers.
+     *
+     * @param {Element|Document} element
+     *     The Element to attach event listeners to for the sake of handling
+     *     key or input events.
+     */
+    this.listenTo = function listenTo(element) {
+
+        // When key pressed
+        element.addEventListener("keydown", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keydownEvent = new KeydownEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keydownEvent);
+
+            // Ignore (but do not prevent) the "composition" keycode sent by some
+            // browsers when an IME is in use (see: http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html)
+            if (keyCode === 229)
+                return;
+
+            // Log event
+            eventLog.push(keydownEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key pressed
+        element.addEventListener("keypress", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var charCode;
+            if (window.event) charCode = window.event.keyCode;
+            else if (e.which) charCode = e.which;
+
+            // Fix modifier states
+            var keypressEvent = new KeypressEvent(charCode);
+            syncModifierStates(e, keypressEvent);
+
+            // Log event
+            eventLog.push(keypressEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key released
+        element.addEventListener("keyup", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            e.preventDefault();
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keyupEvent = new KeyupEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keyupEvent);
+
+            // Log event, call for interpretation
+            eventLog.push(keyupEvent);
+            interpret_events();
+
+        }, true);
+
+        /**
+         * Handles the given "input" event, typing the data within the input text.
+         * If the event is complete (text is provided), handling of "compositionend"
+         * events is suspended, as such events may conflict with input events.
+         *
+         * @private
+         * @param {InputEvent} e
+         *     The "input" event to handle.
+         */
+        var handleInput = function handleInput(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data &amp;&amp; !e.isComposing) {
+                element.removeEventListener("compositionend", handleComposition, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        /**
+         * Handles the given "compositionend" event, typing the data within the
+         * composed text. If the event is complete (composed text is provided),
+         * handling of "input" events is suspended, as such events may conflict
+         * with composition events.
+         *
+         * @private
+         * @param {CompositionEvent} e
+         *     The "compositionend" event to handle.
+         */
+        var handleComposition = function handleComposition(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data) {
+                element.removeEventListener("input", handleInput, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        // Automatically type text entered into the wrapped field
+        element.addEventListener("input", handleInput, false);
+        element.addEventListener("compositionend", handleComposition, false);
+
+    };
+
+    // Listen to given element, if any
+    if (element)
+        guac_keyboard.listenTo(element);
+
+};
+
+/**
+ * The unique numerical identifier to assign to the next Guacamole.Keyboard
+ * instance.
+ *
+ * @private
+ * @type {Number}
+ */
+Guacamole.Keyboard._nextID = 0;
+
+/**
+ * The state of all supported keyboard modifiers.
+ * @constructor
+ */
+Guacamole.Keyboard.ModifierState = function() {
+    
+    /**
+     * Whether shift is currently pressed.
+     * @type {Boolean}
+     */
+    this.shift = false;
+    
+    /**
+     * Whether ctrl is currently pressed.
+     * @type {Boolean}
+     */
+    this.ctrl = false;
+    
+    /**
+     * Whether alt is currently pressed.
+     * @type {Boolean}
+     */
+    this.alt = false;
+    
+    /**
+     * Whether meta (apple key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.meta = false;
+
+    /**
+     * Whether hyper (windows key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.hyper = false;
+    
+};
+
+/**
+ * Returns the modifier state applicable to the keyboard event given.
+ * 
+ * @param {KeyboardEvent} e The keyboard event to read.
+ * @returns {Guacamole.Keyboard.ModifierState} The current state of keyboard
+ *                                             modifiers.
+ */
+Guacamole.Keyboard.ModifierState.fromKeyboardEvent = function(e) {
+    
+    var state = new Guacamole.Keyboard.ModifierState();
+
+    // Assign states from old flags
+    state.shift = e.shiftKey;
+    state.ctrl  = e.ctrlKey;
+    state.alt   = e.altKey;
+    state.meta  = e.metaKey;
+
+    // Use DOM3 getModifierState() for others
+    if (e.getModifierState) {
+        state.hyper = e.getModifierState("OS")
+                   || e.getModifierState("Super")
+                   || e.getModifierState("Hyper")
+                   || e.getModifierState("Win");
+    }
+
+    return state;
+    
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Layer.js.html b/doc/1.3.0/guacamole-common-js/Layer.js.html
new file mode 100644
index 0000000..fa901e0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Layer.js.html
@@ -0,0 +1,1043 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Layer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Layer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract ordered drawing surface. Each Layer contains a canvas element and
+ * provides simple drawing instructions for drawing to that canvas element,
+ * however unlike the canvas element itself, drawing operations on a Layer are
+ * guaranteed to run in order, even if such an operation must wait for an image
+ * to load before completing.
+ * 
+ * @constructor
+ * 
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ *                       
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Layer = function(width, height) {
+
+    /**
+     * Reference to this Layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * The number of pixels the width or height of a layer must change before
+     * the underlying canvas is resized. The underlying canvas will be kept at
+     * dimensions which are integer multiples of this factor.
+     *
+     * @private
+     * @constant
+     * @type Number
+     */
+    var CANVAS_SIZE_FACTOR = 64;
+
+    /**
+     * The canvas element backing this Layer.
+     * @private
+     */
+    var canvas = document.createElement("canvas");
+
+    /**
+     * The 2D display context of the canvas element backing this Layer.
+     * @private
+     */
+    var context = canvas.getContext("2d");
+    context.save();
+
+    /**
+     * Whether the layer has not yet been drawn to. Once any draw operation
+     * which affects the underlying canvas is invoked, this flag will be set to
+     * false.
+     *
+     * @private
+     * @type Boolean
+     */
+    var empty = true;
+
+    /**
+     * Whether a new path should be started with the next path drawing
+     * operations.
+     * @private
+     */
+    var pathClosed = true;
+
+    /**
+     * The number of states on the state stack.
+     * 
+     * Note that there will ALWAYS be one element on the stack, but that
+     * element is not exposed. It is only used to reset the layer to its
+     * initial state.
+     * 
+     * @private
+     */
+    var stackSize = 0;
+
+    /**
+     * Map of all Guacamole channel masks to HTML5 canvas composite operation
+     * names. Not all channel mask combinations are currently implemented.
+     * @private
+     */
+    var compositeOperation = {
+     /* 0x0 NOT IMPLEMENTED */
+        0x1: "destination-in",
+        0x2: "destination-out",
+     /* 0x3 NOT IMPLEMENTED */
+        0x4: "source-in",
+     /* 0x5 NOT IMPLEMENTED */
+        0x6: "source-atop",
+     /* 0x7 NOT IMPLEMENTED */
+        0x8: "source-out",
+        0x9: "destination-atop",
+        0xA: "xor",
+        0xB: "destination-over",
+        0xC: "copy",
+     /* 0xD NOT IMPLEMENTED */
+        0xE: "source-over",
+        0xF: "lighter"
+    };
+
+    /**
+     * Resizes the canvas element backing this Layer. This function should only
+     * be used internally.
+     * 
+     * @private
+     * @param {Number} [newWidth=0]
+     *     The new width to assign to this Layer.
+     *
+     * @param {Number} [newHeight=0]
+     *     The new height to assign to this Layer.
+     */
+    var resize = function resize(newWidth, newHeight) {
+
+        // Default size to zero
+        newWidth = newWidth || 0;
+        newHeight = newHeight || 0;
+
+        // Calculate new dimensions of internal canvas
+        var canvasWidth  = Math.ceil(newWidth  / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+        var canvasHeight = Math.ceil(newHeight / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+
+        // Resize only if canvas dimensions are actually changing
+        if (canvas.width !== canvasWidth || canvas.height !== canvasHeight) {
+
+            // Copy old data only if relevant and non-empty
+            var oldData = null;
+            if (!empty &amp;&amp; canvas.width !== 0 &amp;&amp; canvas.height !== 0) {
+
+                // Create canvas and context for holding old data
+                oldData = document.createElement("canvas");
+                oldData.width = Math.min(layer.width, newWidth);
+                oldData.height = Math.min(layer.height, newHeight);
+
+                var oldDataContext = oldData.getContext("2d");
+
+                // Copy image data from current
+                oldDataContext.drawImage(canvas,
+                        0, 0, oldData.width, oldData.height,
+                        0, 0, oldData.width, oldData.height);
+
+            }
+
+            // Preserve composite operation
+            var oldCompositeOperation = context.globalCompositeOperation;
+
+            // Resize canvas
+            canvas.width = canvasWidth;
+            canvas.height = canvasHeight;
+
+            // Redraw old data, if any
+            if (oldData)
+                context.drawImage(oldData,
+                    0, 0, oldData.width, oldData.height,
+                    0, 0, oldData.width, oldData.height);
+
+            // Restore composite operation
+            context.globalCompositeOperation = oldCompositeOperation;
+
+            // Acknowledge reset of stack (happens on resize of canvas)
+            stackSize = 0;
+            context.save();
+
+        }
+
+        // If the canvas size is not changing, manually force state reset
+        else
+            layer.reset();
+
+        // Assign new layer dimensions
+        layer.width = newWidth;
+        layer.height = newHeight;
+
+    };
+
+    /**
+     * Given the X and Y coordinates of the upper-left corner of a rectangle
+     * and the rectangle's width and height, resize the backing canvas element
+     * as necessary to ensure that the rectangle fits within the canvas
+     * element's coordinate space. This function will only make the canvas
+     * larger. If the rectangle already fits within the canvas element's
+     * coordinate space, the canvas is left unchanged.
+     * 
+     * @private
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} w The width of the the rectangle to fit.
+     * @param {Number} h The height of the the rectangle to fit.
+     */
+    function fitRect(x, y, w, h) {
+        
+        // Calculate bounds
+        var opBoundX = w + x;
+        var opBoundY = h + y;
+        
+        // Determine max width
+        var resizeWidth;
+        if (opBoundX > layer.width)
+            resizeWidth = opBoundX;
+        else
+            resizeWidth = layer.width;
+
+        // Determine max height
+        var resizeHeight;
+        if (opBoundY > layer.height)
+            resizeHeight = opBoundY;
+        else
+            resizeHeight = layer.height;
+
+        // Resize if necessary
+        layer.resize(resizeWidth, resizeHeight);
+
+    }
+
+    /**
+     * Set to true if this Layer should resize itself to accomodate the
+     * dimensions of any drawing operation, and false (the default) otherwise.
+     * 
+     * Note that setting this property takes effect immediately, and thus may
+     * take effect on operations that were started in the past but have not
+     * yet completed. If you wish the setting of this flag to only modify
+     * future operations, you will need to make the setting of this flag an
+     * operation with sync().
+     * 
+     * @example
+     * // Set autosize to true for all future operations
+     * layer.sync(function() {
+     *     layer.autosize = true;
+     * });
+     * 
+     * @type {Boolean}
+     * @default false
+     */
+    this.autosize = false;
+
+    /**
+     * The current width of this layer.
+     * @type {Number}
+     */
+    this.width = width;
+
+    /**
+     * The current height of this layer.
+     * @type {Number}
+     */
+    this.height = height;
+
+    /**
+     * Returns the canvas element backing this Layer. Note that the dimensions
+     * of the canvas may not exactly match those of the Layer, as resizing a
+     * canvas while maintaining its state is an expensive operation.
+     *
+     * @returns {HTMLCanvasElement}
+     *     The canvas element backing this Layer.
+     */
+    this.getCanvas = function getCanvas() {
+        return canvas;
+    };
+
+    /**
+     * Returns a new canvas element containing the same image as this Layer.
+     * Unlike getCanvas(), the canvas element returned is guaranteed to have
+     * the exact same dimensions as the Layer.
+     *
+     * @returns {HTMLCanvasElement}
+     *     A new canvas element containing a copy of the image content this
+     *     Layer.
+     */
+    this.toCanvas = function toCanvas() {
+
+        // Create new canvas having same dimensions
+        var canvas = document.createElement('canvas');
+        canvas.width = layer.width;
+        canvas.height = layer.height;
+
+        // Copy image contents to new canvas
+        var context = canvas.getContext('2d');
+        context.drawImage(layer.getCanvas(), 0, 0);
+
+        return canvas;
+
+    };
+
+    /**
+     * Changes the size of this Layer to the given width and height. Resizing
+     * is only attempted if the new size provided is actually different from
+     * the current size.
+     * 
+     * @param {Number} newWidth The new width to assign to this Layer.
+     * @param {Number} newHeight The new height to assign to this Layer.
+     */
+    this.resize = function(newWidth, newHeight) {
+        if (newWidth !== layer.width || newHeight !== layer.height)
+            resize(newWidth, newHeight);
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y
+     *     The destination Y coordinate.
+     *
+     * @param {CanvasImageSource} image
+     *     The image to draw. Note that this is not a URL.
+     */
+    this.drawImage = function(x, y, image) {
+        if (layer.autosize) fitRect(x, y, image.width, image.height);
+        context.drawImage(image, x, y);
+        empty = false;
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        var dst = context.getImageData(x , y, srcw, srch);
+
+        // Apply transfer for each pixel
+        for (var i=0; i&lt;srcw*srch*4; i+=4) {
+
+            // Get source pixel environment
+            var src_pixel = new Guacamole.Layer.Pixel(
+                src.data[i],
+                src.data[i+1],
+                src.data[i+2],
+                src.data[i+3]
+            );
+                
+            // Get destination pixel environment
+            var dst_pixel = new Guacamole.Layer.Pixel(
+                dst.data[i],
+                dst.data[i+1],
+                dst.data[i+2],
+                dst.data[i+3]
+            );
+
+            // Apply transfer function
+            transferFunction(src_pixel, dst_pixel);
+
+            // Save pixel data
+            dst.data[i  ] = dst_pixel.red;
+            dst.data[i+1] = dst_pixel.green;
+            dst.data[i+2] = dst_pixel.blue;
+            dst.data[i+3] = dst_pixel.alpha;
+
+        }
+
+        // Draw image data
+        context.putImageData(dst, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        context.putImageData(src, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+        context.drawImage(srcCanvas, srcx, srcy, srcw, srch, x, y, srcw, srch);
+        empty = false;
+
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.moveTo(x, y);
+
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.lineTo(x, y);
+        
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(x, y, radius, startAngle, endAngle, negative) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.arc(x, y, radius, startAngle, endAngle, negative);
+        
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     */
+    this.close = function() {
+        context.closePath();
+        pathClosed = true;
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(x, y, w, h) {
+            
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, w, h);
+        context.rect(x, y, w, h);
+        
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     */
+    this.clip = function() {
+
+        // Set new clipping region
+        context.clip();
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(cap, join, thickness, r, g, b, a) {
+
+        // Stroke with color
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(r, g, b, a) {
+
+        // Fill with color
+        context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(cap, join, thickness, srcLayer) {
+
+        // Stroke with image data
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(srcLayer) {
+
+        // Fill with image data 
+        context.fillStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Push current layer state onto stack.
+     */
+    this.push = function() {
+
+        // Save current state onto stack
+        context.save();
+        stackSize++;
+
+    };
+
+    /**
+     * Pop layer state off stack.
+     */
+    this.pop = function() {
+
+        // Restore current state from stack
+        if (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     */
+    this.reset = function() {
+
+        // Clear stack
+        while (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+        // Restore to initial state
+        context.restore();
+        context.save();
+
+        // Clear path
+        context.beginPath();
+        pathClosed = false;
+
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(a, b, c, d, e, f) {
+        context.setTransform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(a, b, c, d, e, f) {
+        context.transform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(mask) {
+        context.globalCompositeOperation = compositeOperation[mask];
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(limit) {
+        context.miterLimit = limit;
+    };
+
+    // Initialize canvas dimensions
+    resize(width, height);
+
+    // Explicitly render canvas below other elements in the layer (such as
+    // child layers). Chrome and others may fail to render layers properly
+    // without this.
+    canvas.style.zIndex = -1;
+
+};
+
+/**
+ * Channel mask for the composite operation "rout".
+ */
+Guacamole.Layer.ROUT  = 0x2;
+
+/**
+ * Channel mask for the composite operation "atop".
+ */
+Guacamole.Layer.ATOP  = 0x6;
+
+/**
+ * Channel mask for the composite operation "xor".
+ */
+Guacamole.Layer.XOR   = 0xA;
+
+/**
+ * Channel mask for the composite operation "rover".
+ */
+Guacamole.Layer.ROVER = 0xB;
+
+/**
+ * Channel mask for the composite operation "over".
+ */
+Guacamole.Layer.OVER  = 0xE;
+
+/**
+ * Channel mask for the composite operation "plus".
+ */
+Guacamole.Layer.PLUS  = 0xF;
+
+/**
+ * Channel mask for the composite operation "rin".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RIN   = 0x1;
+
+/**
+ * Channel mask for the composite operation "in".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.IN    = 0x4;
+
+/**
+ * Channel mask for the composite operation "out".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.OUT   = 0x8;
+
+/**
+ * Channel mask for the composite operation "ratop".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RATOP = 0x9;
+
+/**
+ * Channel mask for the composite operation "src".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.SRC   = 0xC;
+
+/**
+ * Represents a single pixel of image data. All components have a minimum value
+ * of 0 and a maximum value of 255.
+ * 
+ * @constructor
+ * 
+ * @param {Number} r The red component of this pixel.
+ * @param {Number} g The green component of this pixel.
+ * @param {Number} b The blue component of this pixel.
+ * @param {Number} a The alpha component of this pixel.
+ */
+Guacamole.Layer.Pixel = function(r, g, b, a) {
+
+    /**
+     * The red component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.red   = r;
+
+    /**
+     * The green component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.green = g;
+
+    /**
+     * The blue component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.blue  = b;
+
+    /**
+     * The alpha component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.alpha = a;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Mouse.js.html b/doc/1.3.0/guacamole-common-js/Mouse.js.html
new file mode 100644
index 0000000..94c3a66
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Mouse.js.html
@@ -0,0 +1,1148 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Mouse.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Mouse.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser mouse events for a given element. The events of
+ * the given element are automatically populated with handlers that translate
+ * mouse events into a non-browser-specific event provided by the
+ * Guacamole.Mouse instance.
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide mouse events.
+ */
+Guacamole.Mouse = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.
+     * @private
+     */
+    var guac_mouse = this;
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * The minimum amount of pixels scrolled required for a single scroll button
+     * click.
+     */
+    this.scrollThreshold = 53;
+
+    /**
+     * The number of pixels to scroll per line.
+     */
+    this.PIXELS_PER_LINE = 18;
+
+    /**
+     * The number of pixels to scroll per page.
+     */
+    this.PIXELS_PER_PAGE = this.PIXELS_PER_LINE * 16;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever the user presses a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever the user releases a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse over the element associated with
+     * this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Fired whenever the mouse leaves the boundaries of the element associated
+     * with this Guacamole.Mouse.
+     * 
+     * @event
+     */
+	this.onmouseout = null;
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     * @private
+     */
+    var ignore_mouse = 0;
+
+    /**
+     * Cumulative scroll delta amount. This value is accumulated through scroll
+     * events and results in scroll button clicks if it exceeds a certain
+     * threshold.
+     *
+     * @private
+     */
+    var scroll_delta = 0;
+
+    function cancelEvent(e) {
+        e.stopPropagation();
+        if (e.preventDefault) e.preventDefault();
+        e.returnValue = false;
+    }
+
+    // Block context menu so right-click gets sent properly
+    element.addEventListener("contextmenu", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    element.addEventListener("mousemove", function(e) {
+
+        cancelEvent(e);
+
+        // If ignoring events, decrement counter
+        if (ignore_mouse) {
+            ignore_mouse--;
+            return;
+        }
+
+        guac_mouse.currentState.fromClientPosition(element, e.clientX, e.clientY);
+
+        if (guac_mouse.onmousemove)
+            guac_mouse.onmousemove(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mousedown", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = true;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = true;
+                break;
+            case 2:
+                guac_mouse.currentState.right = true;
+                break;
+        }
+
+        if (guac_mouse.onmousedown)
+            guac_mouse.onmousedown(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseup", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = false;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = false;
+                break;
+            case 2:
+                guac_mouse.currentState.right = false;
+                break;
+        }
+
+        if (guac_mouse.onmouseup)
+            guac_mouse.onmouseup(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseout", function(e) {
+
+        // Get parent of the element the mouse pointer is leaving
+       	if (!e) e = window.event;
+
+        // Check that mouseout is due to actually LEAVING the element
+        var target = e.relatedTarget || e.toElement;
+        while (target) {
+            if (target === element)
+                return;
+            target = target.parentNode;
+        }
+
+        cancelEvent(e);
+
+        // Release all buttons
+        if (guac_mouse.currentState.left
+            || guac_mouse.currentState.middle
+            || guac_mouse.currentState.right) {
+
+            guac_mouse.currentState.left = false;
+            guac_mouse.currentState.middle = false;
+            guac_mouse.currentState.right = false;
+
+            if (guac_mouse.onmouseup)
+                guac_mouse.onmouseup(guac_mouse.currentState);
+        }
+
+        // Fire onmouseout event
+        if (guac_mouse.onmouseout)
+            guac_mouse.onmouseout();
+
+    }, false);
+
+    // Override selection on mouse event element.
+    element.addEventListener("selectstart", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    // Ignore all pending mouse events when touch events are the apparent source
+    function ignorePendingMouseEvents() { ignore_mouse = guac_mouse.touchMouseThreshold; }
+
+    element.addEventListener("touchmove",  ignorePendingMouseEvents, false);
+    element.addEventListener("touchstart", ignorePendingMouseEvents, false);
+    element.addEventListener("touchend",   ignorePendingMouseEvents, false);
+
+    // Scroll wheel support
+    function mousewheel_handler(e) {
+
+        // Determine approximate scroll amount (in pixels)
+        var delta = e.deltaY || -e.wheelDeltaY || -e.wheelDelta;
+
+        // If successfully retrieved scroll amount, convert to pixels if not
+        // already in pixels
+        if (delta) {
+
+            // Convert to pixels if delta was lines
+            if (e.deltaMode === 1)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_LINE;
+
+            // Convert to pixels if delta was pages
+            else if (e.deltaMode === 2)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_PAGE;
+
+        }
+
+        // Otherwise, assume legacy mousewheel event and line scrolling
+        else
+            delta = e.detail * guac_mouse.PIXELS_PER_LINE;
+        
+        // Update overall delta
+        scroll_delta += delta;
+
+        // Up
+        if (scroll_delta &lt;= -guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the up button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.up = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.up = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta += guac_mouse.scrollThreshold;
+
+            } while (scroll_delta &lt;= -guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        // Down
+        if (scroll_delta >= guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the down button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.down = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.down = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta -= guac_mouse.scrollThreshold;
+
+            } while (scroll_delta >= guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        cancelEvent(e);
+
+    }
+
+    element.addEventListener('DOMMouseScroll', mousewheel_handler, false);
+    element.addEventListener('mousewheel',     mousewheel_handler, false);
+    element.addEventListener('wheel',          mousewheel_handler, false);
+
+    /**
+     * Whether the browser supports CSS3 cursor styling, including hotspot
+     * coordinates.
+     *
+     * @private
+     * @type {Boolean}
+     */
+    var CSS3_CURSOR_SUPPORTED = (function() {
+
+        var div = document.createElement("div");
+
+        // If no cursor property at all, then no support
+        if (!("cursor" in div.style))
+            return false;
+
+        try {
+            // Apply simple 1x1 PNG
+            div.style.cursor = "url(data:image/png;base64,"
+                             + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
+                             + "AQMAAAAl21bKAAAAA1BMVEX///+nxBvI"
+                             + "AAAACklEQVQI12NgAAAAAgAB4iG8MwAA"
+                             + "AABJRU5ErkJggg==) 0 0, auto";
+        }
+        catch (e) {
+            return false;
+        }
+
+        // Verify cursor property is set to URL with hotspot
+        return /\burl\([^()]*\)\s+0\s+0\b/.test(div.style.cursor || "");
+
+    })();
+
+    /**
+     * Changes the local mouse cursor to the given canvas, having the given
+     * hotspot coordinates. This affects styling of the element backing this
+     * Guacamole.Mouse only, and may fail depending on browser support for
+     * setting the mouse cursor.
+     * 
+     * If setting the local cursor is desired, it is up to the implementation
+     * to do something else, such as use the software cursor built into
+     * Guacamole.Display, if the local cursor cannot be set.
+     *
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     * @return {Boolean} true if the cursor was successfully set, false if the
+     *                   cursor could not be set for any reason.
+     */
+    this.setCursor = function(canvas, x, y) {
+
+        // Attempt to set via CSS3 cursor styling
+        if (CSS3_CURSOR_SUPPORTED) {
+            var dataURL = canvas.toDataURL('image/png');
+            element.style.cursor = "url(" + dataURL + ") " + x + " " + y + ", auto";
+            return true;
+        }
+
+        // Otherwise, setting cursor failed
+        return false;
+
+    };
+
+};
+
+/**
+ * Simple container for properties describing the state of a mouse.
+ * 
+ * @constructor
+ * @param {Number} x The X position of the mouse pointer in pixels.
+ * @param {Number} y The Y position of the mouse pointer in pixels.
+ * @param {Boolean} left Whether the left mouse button is pressed. 
+ * @param {Boolean} middle Whether the middle mouse button is pressed. 
+ * @param {Boolean} right Whether the right mouse button is pressed. 
+ * @param {Boolean} up Whether the up mouse button is pressed (the fourth
+ *                     button, usually part of a scroll wheel). 
+ * @param {Boolean} down Whether the down mouse button is pressed (the fifth
+ *                       button, usually part of a scroll wheel). 
+ */
+Guacamole.Mouse.State = function(x, y, left, middle, right, up, down) {
+
+    /**
+     * Reference to this Guacamole.Mouse.State.
+     * @private
+     */
+    var guac_state = this;
+
+    /**
+     * The current X position of the mouse pointer.
+     * @type {Number}
+     */
+    this.x = x;
+
+    /**
+     * The current Y position of the mouse pointer.
+     * @type {Number}
+     */
+    this.y = y;
+
+    /**
+     * Whether the left mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.left = left;
+
+    /**
+     * Whether the middle mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.middle = middle;
+
+    /**
+     * Whether the right mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.right = right;
+
+    /**
+     * Whether the up mouse button is currently pressed. This is the fourth
+     * mouse button, associated with upward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.up = up;
+
+    /**
+     * Whether the down mouse button is currently pressed. This is the fifth 
+     * mouse button, associated with downward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.down = down;
+
+    /**
+     * Updates the position represented within this state object by the given
+     * element and clientX/clientY coordinates (commonly available within event
+     * objects). Position is translated from clientX/clientY (relative to
+     * viewport) to element-relative coordinates.
+     * 
+     * @param {Element} element The element the coordinates should be relative
+     *                          to.
+     * @param {Number} clientX The X coordinate to translate, viewport-relative.
+     * @param {Number} clientY The Y coordinate to translate, viewport-relative.
+     */
+    this.fromClientPosition = function(element, clientX, clientY) {
+    
+        guac_state.x = clientX - element.offsetLeft;
+        guac_state.y = clientY - element.offsetTop;
+
+        // This is all JUST so we can get the mouse position within the element
+        var parent = element.offsetParent;
+        while (parent &amp;&amp; !(parent === document.body)) {
+            guac_state.x -= parent.offsetLeft - parent.scrollLeft;
+            guac_state.y -= parent.offsetTop  - parent.scrollTop;
+
+            parent = parent.offsetParent;
+        }
+
+        // Element ultimately depends on positioning within document body,
+        // take document scroll into account. 
+        if (parent) {
+            var documentScrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
+            var documentScrollTop = document.body.scrollTop || document.documentElement.scrollTop;
+
+            guac_state.x -= parent.offsetLeft - documentScrollLeft;
+            guac_state.y -= parent.offsetTop  - documentScrollTop;
+        }
+
+    };
+
+};
+
+/**
+ * Provides cross-browser relative touch event translation for a given element.
+ * 
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchpad (drag to push the mouse pointer, tap to click).
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchpad = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchpad.
+     * @private
+     */
+    var guac_touchpad = this;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 10 * (window.devicePixelRatio || 1);
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchpad element.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    var touch_count = 0;
+    var last_touch_x = 0;
+    var last_touch_y = 0;
+    var last_touch_time = 0;
+    var pixels_moved = 0;
+
+    var touch_buttons = {
+        1: "left",
+        2: "right",
+        3: "middle"
+    };
+
+    var gesture_in_progress = false;
+    var click_release_timeout = null;
+
+    element.addEventListener("touchend", function(e) {
+        
+        e.preventDefault();
+            
+        // If we're handling a gesture AND this is the last touch
+        if (gesture_in_progress &amp;&amp; e.touches.length === 0) {
+            
+            var time = new Date().getTime();
+
+            // Get corresponding mouse button
+            var button = touch_buttons[touch_count];
+
+            // If mouse already down, release anad clear timeout
+            if (guac_touchpad.currentState[button]) {
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Clear timeout, if set
+                if (click_release_timeout) {
+                    window.clearTimeout(click_release_timeout);
+                    click_release_timeout = null;
+                }
+
+            }
+
+            // If single tap detected (based on time and distance)
+            if (time - last_touch_time &lt;= guac_touchpad.clickTimingThreshold
+                    &amp;&amp; pixels_moved &lt; guac_touchpad.clickMoveThreshold) {
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Delay mouse up - mouse up should be canceled if
+                // touchstart within timeout.
+                click_release_timeout = window.setTimeout(function() {
+                    
+                    // Fire button up event
+                    guac_touchpad.currentState[button] = false;
+                    if (guac_touchpad.onmouseup)
+                        guac_touchpad.onmouseup(guac_touchpad.currentState);
+                    
+                    // Gesture now over
+                    gesture_in_progress = false;
+
+                }, guac_touchpad.clickTimingThreshold);
+
+            }
+
+            // If we're not waiting to see if this is a click, stop gesture
+            if (!click_release_timeout)
+                gesture_in_progress = false;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        e.preventDefault();
+
+        // Track number of touches, but no more than three
+        touch_count = Math.min(e.touches.length, 3);
+
+        // Clear timeout, if set
+        if (click_release_timeout) {
+            window.clearTimeout(click_release_timeout);
+            click_release_timeout = null;
+        }
+
+        // Record initial touch location and time for touch movement
+        // and tap gestures
+        if (!gesture_in_progress) {
+
+            // Stop mouse events while touching
+            gesture_in_progress = true;
+
+            // Record touch location and time
+            var starting_touch = e.touches[0];
+            last_touch_x = starting_touch.clientX;
+            last_touch_y = starting_touch.clientY;
+            last_touch_time = new Date().getTime();
+            pixels_moved = 0;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        e.preventDefault();
+
+        // Get change in touch location
+        var touch = e.touches[0];
+        var delta_x = touch.clientX - last_touch_x;
+        var delta_y = touch.clientY - last_touch_y;
+
+        // Track pixels moved
+        pixels_moved += Math.abs(delta_x) + Math.abs(delta_y);
+
+        // If only one touch involved, this is mouse move
+        if (touch_count === 1) {
+
+            // Calculate average velocity in Manhatten pixels per millisecond
+            var velocity = pixels_moved / (new Date().getTime() - last_touch_time);
+
+            // Scale mouse movement relative to velocity
+            var scale = 1 + velocity;
+
+            // Update mouse location
+            guac_touchpad.currentState.x += delta_x*scale;
+            guac_touchpad.currentState.y += delta_y*scale;
+
+            // Prevent mouse from leaving screen
+
+            if (guac_touchpad.currentState.x &lt; 0)
+                guac_touchpad.currentState.x = 0;
+            else if (guac_touchpad.currentState.x >= element.offsetWidth)
+                guac_touchpad.currentState.x = element.offsetWidth - 1;
+
+            if (guac_touchpad.currentState.y &lt; 0)
+                guac_touchpad.currentState.y = 0;
+            else if (guac_touchpad.currentState.y >= element.offsetHeight)
+                guac_touchpad.currentState.y = element.offsetHeight - 1;
+
+            // Fire movement event, if defined
+            if (guac_touchpad.onmousemove)
+                guac_touchpad.onmousemove(guac_touchpad.currentState);
+
+            // Update touch location
+            last_touch_x = touch.clientX;
+            last_touch_y = touch.clientY;
+
+        }
+
+        // Interpret two-finger swipe as scrollwheel
+        else if (touch_count === 2) {
+
+            // If change in location passes threshold for scroll
+            if (Math.abs(delta_y) >= guac_touchpad.scrollThreshold) {
+
+                // Decide button based on Y movement direction
+                var button;
+                if (delta_y > 0) button = "down";
+                else             button = "up";
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Only update touch location after a scroll has been
+                // detected
+                last_touch_x = touch.clientX;
+                last_touch_y = touch.clientY;
+
+            }
+
+        }
+
+    }, false);
+
+};
+
+/**
+ * Provides cross-browser absolute touch event translation for a given element.
+ *
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchscreen (tapping anywhere on the screen clicks at that point,
+ * long-press to right-click).
+ *
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchscreen = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchscreen.
+     * @private
+     */
+    var guac_touchscreen = this;
+
+    /**
+     * Whether a gesture is known to be in progress. If false, touch events
+     * will be ignored.
+     *
+     * @private
+     */
+    var gesture_in_progress = false;
+
+    /**
+     * The start X location of a gesture.
+     * @private
+     */
+    var gesture_start_x = null;
+
+    /**
+     * The start Y location of a gesture.
+     * @private
+     */
+    var gesture_start_y = null;
+
+    /**
+     * The timeout associated with the delayed, cancellable click release.
+     *
+     * @private
+     */
+    var click_release_timeout = null;
+
+    /**
+     * The timeout associated with long-press for right click.
+     *
+     * @private
+     */
+    var long_press_timeout = null;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 16 * (window.devicePixelRatio || 1);
+
+    /**
+     * The amount of time a press must be held for long press to be
+     * detected.
+     */
+    this.longPressThreshold = 500;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     *
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0,
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "mousedown" gesture initiated by the user by pressing one
+     * finger over the touchscreen element, as part of a "scroll" gesture
+     * initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "mouseup" gesture initiated by the user by removing the
+     * finger pressed against the touchscreen element, or as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+     * dragging a finger over the touchscreen element will always cause
+     * the mouse button to be effectively down, as if clicking-and-dragging.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Presses the given mouse button, if it isn't already pressed. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to press.
+     */
+    function press_button(button) {
+        if (!guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = true;
+            if (guac_touchscreen.onmousedown)
+                guac_touchscreen.onmousedown(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Releases the given mouse button, if it isn't already released. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to release.
+     */
+    function release_button(button) {
+        if (guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = false;
+            if (guac_touchscreen.onmouseup)
+                guac_touchscreen.onmouseup(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Clicks (presses and releases) the given mouse button. Valid button
+     * values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to click.
+     */
+    function click_button(button) {
+        press_button(button);
+        release_button(button);
+    }
+
+    /**
+     * Moves the mouse to the given coordinates. These coordinates must be
+     * relative to the browser window, as they will be translated based on
+     * the touch event target's location within the browser window.
+     *
+     * @private
+     * @param {Number} x The X coordinate of the mouse pointer.
+     * @param {Number} y The Y coordinate of the mouse pointer.
+     */
+    function move_mouse(x, y) {
+        guac_touchscreen.currentState.fromClientPosition(element, x, y);
+        if (guac_touchscreen.onmousemove)
+            guac_touchscreen.onmousemove(guac_touchscreen.currentState);
+    }
+
+    /**
+     * Returns whether the given touch event exceeds the movement threshold for
+     * clicking, based on where the touch gesture began.
+     *
+     * @private
+     * @param {TouchEvent} e The touch event to check.
+     * @return {Boolean} true if the movement threshold is exceeded, false
+     *                   otherwise.
+     */
+    function finger_moved(e) {
+        var touch = e.touches[0] || e.changedTouches[0];
+        var delta_x = touch.clientX - gesture_start_x;
+        var delta_y = touch.clientY - gesture_start_y;
+        return Math.sqrt(delta_x*delta_x + delta_y*delta_y) >= guac_touchscreen.clickMoveThreshold;
+    }
+
+    /**
+     * Begins a new gesture at the location of the first touch in the given
+     * touch event.
+     * 
+     * @private
+     * @param {TouchEvent} e The touch event beginning this new gesture.
+     */
+    function begin_gesture(e) {
+        var touch = e.touches[0];
+        gesture_in_progress = true;
+        gesture_start_x = touch.clientX;
+        gesture_start_y = touch.clientY;
+    }
+
+    /**
+     * End the current gesture entirely. Wait for all touches to be done before
+     * resuming gesture detection.
+     * 
+     * @private
+     */
+    function end_gesture() {
+        window.clearTimeout(click_release_timeout);
+        window.clearTimeout(long_press_timeout);
+        gesture_in_progress = false;
+    }
+
+    element.addEventListener("touchend", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 0 || e.changedTouches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Long-press, if any, is over
+        window.clearTimeout(long_press_timeout);
+
+        // Always release mouse button if pressed
+        release_button("left");
+
+        // If finger hasn't moved enough to cancel the click
+        if (!finger_moved(e)) {
+
+            e.preventDefault();
+
+            // If not yet pressed, press and start delay release
+            if (!guac_touchscreen.currentState.left) {
+
+                var touch = e.changedTouches[0];
+                move_mouse(touch.clientX, touch.clientY);
+                press_button("left");
+
+                // Release button after a delay, if not canceled
+                click_release_timeout = window.setTimeout(function() {
+                    release_button("left");
+                    end_gesture();
+                }, guac_touchscreen.clickTimingThreshold);
+
+            }
+
+        } // end if finger not moved
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        e.preventDefault();
+
+        // New touch begins a new gesture
+        begin_gesture(e);
+
+        // Keep button pressed if tap after left click
+        window.clearTimeout(click_release_timeout);
+
+        // Click right button if this turns into a long-press
+        long_press_timeout = window.setTimeout(function() {
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+            click_button("right");
+            end_gesture();
+        }, guac_touchscreen.longPressThreshold);
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Cancel long press if finger moved
+        if (finger_moved(e))
+            window.clearTimeout(long_press_timeout);
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Update mouse position if dragging
+        if (guac_touchscreen.currentState.left) {
+
+            e.preventDefault();
+
+            // Update state
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+
+        }
+
+    }, false);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Namespace.js.html b/doc/1.3.0/guacamole-common-js/Namespace.js.html
new file mode 100644
index 0000000..b52c74c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Namespace.js.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Namespace.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Namespace.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * The namespace used by the Guacamole JavaScript API. Absolutely all classes
+ * defined by the Guacamole JavaScript API will be within this namespace.
+ *
+ * @namespace
+ */
+var Guacamole = Guacamole || {};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Object.js.html b/doc/1.3.0/guacamole-common-js/Object.js.html
new file mode 100644
index 0000000..6861ced
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Object.js.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Object.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Object.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An object used by the Guacamole client to house arbitrarily-many named
+ * input and output streams.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client
+ *     The client owning this object.
+ *
+ * @param {Number} index
+ *     The index of this object.
+ */
+Guacamole.Object = function guacamoleObject(client, index) {
+
+    /**
+     * Reference to this Guacamole.Object.
+     *
+     * @private
+     * @type {Guacamole.Object}
+     */
+    var guacObject = this;
+
+    /**
+     * Map of stream name to corresponding queue of callbacks. The queue of
+     * callbacks is guaranteed to be in order of request.
+     *
+     * @private
+     * @type {Object.&lt;String, Function[]>}
+     */
+    var bodyCallbacks = {};
+
+    /**
+     * Removes and returns the callback at the head of the callback queue for
+     * the stream having the given name. If no such callbacks exist, null is
+     * returned.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to retrieve a callback for.
+     *
+     * @returns {Function}
+     *     The next callback associated with the stream having the given name,
+     *     or null if no such callback exists.
+     */
+    var dequeueBodyCallback = function dequeueBodyCallback(name) {
+
+        // If no callbacks defined, simply return null
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks)
+            return null;
+
+        // Otherwise, pull off first callback, deleting the queue if empty
+        var callback = callbacks.shift();
+        if (callbacks.length === 0)
+            delete bodyCallbacks[name];
+
+        // Return found callback
+        return callback;
+
+    };
+
+    /**
+     * Adds the given callback to the tail of the callback queue for the stream
+     * having the given name.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to associate with the given callback.
+     *
+     * @param {Function} callback
+     *     The callback to add to the queue of the stream with the given name.
+     */
+    var enqueueBodyCallback = function enqueueBodyCallback(name, callback) {
+
+        // Get callback queue by name, creating first if necessary
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks) {
+            callbacks = [];
+            bodyCallbacks[name] = callbacks;
+        }
+
+        // Add callback to end of queue
+        callbacks.push(callback);
+
+    };
+
+    /**
+     * The index of this object.
+     *
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when this object receives the body of a requested input stream.
+     * By default, all objects will invoke the callbacks provided to their
+     * requestInputStream() functions based on the name of the stream
+     * requested. This behavior can be overridden by specifying a different
+     * handler here.
+     *
+     * @event
+     * @param {Guacamole.InputStream} inputStream
+     *     The input stream of the received body.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being received.
+     *
+     * @param {String} name
+     *     The name of the stream whose body has been received.
+     */
+    this.onbody = function defaultBodyHandler(inputStream, mimetype, name) {
+
+        // Call queued callback for the received body, if any
+        var callback = dequeueBodyCallback(name);
+        if (callback)
+            callback(inputStream, mimetype);
+
+    };
+
+    /**
+     * Called when this object is being undefined. Once undefined, no further
+     * communication involving this object may occur.
+     * 
+     * @event
+     */
+    this.onundefine = null;
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     *
+     * @param {Function} [bodyCallback]
+     *     The callback to invoke when the body of the requested input stream
+     *     is received. This callback will be provided a Guacamole.InputStream
+     *     and its mimetype as its two only arguments. If the onbody handler of
+     *     this object is overridden, this callback will not be invoked.
+     */
+    this.requestInputStream = function requestInputStream(name, bodyCallback) {
+
+        // Queue body callback if provided
+        if (bodyCallback)
+            enqueueBodyCallback(name, bodyCallback);
+
+        // Send request for input stream
+        client.requestObjectInputStream(guacObject.index, name);
+
+    };
+
+    /**
+     * Creates a new output stream associated with this object and having the
+     * given mimetype and name. The legality of a mimetype and name is dictated
+     * by the object itself.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within this object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of this object.
+     */
+    this.createOutputStream = function createOutputStream(mimetype, name) {
+        return client.createObjectOutputStream(guacObject.index, mimetype, name);
+    };
+
+};
+
+/**
+ * The reserved name denoting the root stream of any object. The contents of
+ * the root stream MUST be a JSON map of stream name to mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.ROOT_STREAM = '/';
+
+/**
+ * The mimetype of a stream containing JSON which maps available stream names
+ * to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+ * have this mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.STREAM_INDEX_MIMETYPE = 'application/vnd.glyptodon.guacamole.stream-index+json';
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/OnScreenKeyboard.js.html b/doc/1.3.0/guacamole-common-js/OnScreenKeyboard.js.html
new file mode 100644
index 0000000..bfee49d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/OnScreenKeyboard.js.html
@@ -0,0 +1,1004 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OnScreenKeyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OnScreenKeyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Dynamic on-screen keyboard. Given the layout object for an on-screen
+ * keyboard, this object will construct a clickable on-screen keyboard with its
+ * own key events.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout} layout
+ *     The layout of the on-screen keyboard to display.
+ */
+Guacamole.OnScreenKeyboard = function(layout) {
+
+    /**
+     * Reference to this Guacamole.OnScreenKeyboard.
+     *
+     * @private
+     * @type {Guacamole.OnScreenKeyboard}
+     */
+    var osk = this;
+
+    /**
+     * Map of currently-set modifiers to the keysym associated with their
+     * original press. When the modifier is cleared, this keysym must be
+     * released.
+     *
+     * @private
+     * @type {Object.&lt;String, Number>}
+     */
+    var modifierKeysyms = {};
+
+    /**
+     * Map of all key names to their current pressed states. If a key is not
+     * pressed, it may not be in this map at all, but all pressed keys will
+     * have a corresponding mapping to true.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var pressed = {};
+
+    /**
+     * All scalable elements which are part of the on-screen keyboard. Each
+     * scalable element is carefully controlled to ensure the interface layout
+     * and sizing remains constant, even on browsers that would otherwise
+     * experience rounding error due to unit conversions.
+     *
+     * @private
+     * @type {ScaledElement[]}
+     */
+    var scaledElements = [];
+
+    /**
+     * Adds a CSS class to an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to add a class to.
+     *
+     * @param {String} classname
+     *     The name of the class to add.
+     */
+    var addClass = function addClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.add(classname);
+
+        // Otherwise, simply append the class
+        else
+            element.className += " " + classname;
+
+    };
+
+    /**
+     * Removes a CSS class from an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to remove a class from.
+     *
+     * @param {String} classname
+     *     The name of the class to remove.
+     */
+    var removeClass = function removeClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.remove(classname);
+
+        // Otherwise, manually filter out classes with given name
+        else {
+            element.className = element.className.replace(/([^ ]+)[ ]*/g,
+                function removeMatchingClasses(match, testClassname) {
+
+                    // If same class, remove
+                    if (testClassname === classname)
+                        return "";
+
+                    // Otherwise, allow
+                    return match;
+                    
+                }
+            );
+        }
+
+    };
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     *
+     * @private
+     * @type {Number}
+     */
+    var ignoreMouse = 0;
+
+    /**
+     * Ignores all pending mouse events when touch events are the apparent
+     * source. Mouse events are ignored until at least touchMouseThreshold
+     * mouse events occur without corresponding touch events.
+     *
+     * @private
+     */
+    var ignorePendingMouseEvents = function ignorePendingMouseEvents() {
+        ignoreMouse = osk.touchMouseThreshold;
+    };
+
+    /**
+     * An element whose dimensions are maintained according to an arbitrary
+     * scale. The conversion factor for these arbitrary units to pixels is
+     * provided later via a call to scale().
+     *
+     * @private
+     * @constructor
+     * @param {Element} element
+     *     The element whose scale should be maintained.
+     *
+     * @param {Number} width
+     *     The width of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *
+     * @param {Number} height
+     *     The height of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *     
+     * @param {Boolean} [scaleFont=false]
+     *     Whether the line height and font size should be scaled as well.
+     */
+    var ScaledElement = function ScaledElement(element, width, height, scaleFont) {
+
+        /**
+         * The width of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.width = width;
+
+        /**
+         * The height of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.height = height;
+ 
+        /**
+         * Resizes the associated element, updating its dimensions according to
+         * the given pixels per unit.
+         *
+         * @param {Number} pixels
+         *     The number of pixels to assign per arbitrary unit.
+         */
+        this.scale = function(pixels) {
+
+            // Scale element width/height
+            element.style.width  = (width  * pixels) + "px";
+            element.style.height = (height * pixels) + "px";
+
+            // Scale font, if requested
+            if (scaleFont) {
+                element.style.lineHeight = (height * pixels) + "px";
+                element.style.fontSize   = pixels + "px";
+            }
+
+        };
+
+    };
+
+    /**
+     * Returns whether all modifiers having the given names are currently
+     * active.
+     *
+     * @private
+     * @param {String[]} names
+     *     The names of all modifiers to test.
+     *
+     * @returns {Boolean}
+     *     true if all specified modifiers are pressed, false otherwise.
+     */
+    var modifiersPressed = function modifiersPressed(names) {
+
+        // If any required modifiers are not pressed, return false
+        for (var i=0; i &lt; names.length; i++) {
+
+            // Test whether current modifier is pressed
+            var name = names[i];
+            if (!(name in modifierKeysyms))
+                return false;
+
+        }
+
+        // Otherwise, all required modifiers are pressed
+        return true;
+
+    };
+
+    /**
+     * Returns the single matching Key object associated with the key of the
+     * given name, where that Key object's requirements (such as pressed
+     * modifiers) are all currently satisfied.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to retrieve.
+     *
+     * @returns {Guacamole.OnScreenKeyboard.Key}
+     *     The Key object associated with the given name, where that object's
+     *     requirements are all currently satisfied, or null if no such Key
+     *     can be found.
+     */
+    var getActiveKey = function getActiveKey(keyName) {
+
+        // Get key array for given name
+        var keys = osk.keys[keyName];
+        if (!keys)
+            return null;
+
+        // Find last matching key
+        for (var i = keys.length - 1; i >= 0; i--) {
+
+            // Get candidate key
+            var candidate = keys[i];
+
+            // If all required modifiers are pressed, use that key
+            if (modifiersPressed(candidate.requires))
+                return candidate;
+
+        }
+
+        // No valid key
+        return null;
+
+    };
+
+    /**
+     * Presses the key having the given name, updating the associated key
+     * element with the "guac-keyboard-pressed" CSS class. If the key is
+     * already pressed, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to press.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var press = function press(keyName, keyElement) {
+
+        // Press key if not yet pressed
+        if (!pressed[keyName]) {
+
+            addClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Update modifier state
+            if (key.modifier) {
+
+                // Construct classname for modifier
+                var modifierClass = "guac-keyboard-modifier-" + getCSSName(key.modifier);
+
+                // Retrieve originally-pressed keysym, if modifier was already pressed
+                var originalKeysym = modifierKeysyms[key.modifier];
+
+                // Activate modifier if not pressed
+                if (!originalKeysym) {
+                    
+                    addClass(keyboard, modifierClass);
+                    modifierKeysyms[key.modifier] = key.keysym;
+                    
+                    // Send key event
+                    if (osk.onkeydown)
+                        osk.onkeydown(key.keysym);
+
+                }
+
+                // Deactivate if not pressed
+                else {
+
+                    removeClass(keyboard, modifierClass);
+                    delete modifierKeysyms[key.modifier];
+                    
+                    // Send key event
+                    if (osk.onkeyup)
+                        osk.onkeyup(originalKeysym);
+
+                }
+
+            }
+
+            // If not modifier, send key event now
+            else if (osk.onkeydown)
+                osk.onkeydown(key.keysym);
+
+            // Mark key as pressed
+            pressed[keyName] = true;
+
+        }
+
+    };
+
+    /**
+     * Releases the key having the given name, removing the
+     * "guac-keyboard-pressed" CSS class from the associated element. If the
+     * key is already released, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to release.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var release = function release(keyName, keyElement) {
+
+        // Release key if currently pressed
+        if (pressed[keyName]) {
+
+            removeClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Send key event if not a modifier key
+            if (!key.modifier &amp;&amp; osk.onkeyup)
+                osk.onkeyup(key.keysym);
+
+            // Mark key as released
+            pressed[keyName] = false;
+
+        }
+
+    };
+
+    // Create keyboard
+    var keyboard = document.createElement("div");
+    keyboard.className = "guac-keyboard";
+
+    // Do not allow selection or mouse movement to propagate/register.
+    keyboard.onselectstart =
+    keyboard.onmousemove   =
+    keyboard.onmouseup     =
+    keyboard.onmousedown   = function handleMouseEvents(e) {
+
+        // If ignoring events, decrement counter
+        if (ignoreMouse)
+            ignoreMouse--;
+
+        e.stopPropagation();
+        return false;
+
+    };
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     *
+     * @type {Number}
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * The keyboard layout provided at time of construction.
+     *
+     * @type {Guacamole.OnScreenKeyboard.Layout}
+     */
+    this.layout = new Guacamole.OnScreenKeyboard.Layout(layout);
+
+    /**
+     * Returns the element containing the entire on-screen keyboard.
+     * @returns {Element} The element containing the entire on-screen keyboard.
+     */
+    this.getElement = function() {
+        return keyboard;
+    };
+
+    /**
+     * Resizes all elements within this Guacamole.OnScreenKeyboard such that
+     * the width is close to but does not exceed the specified width. The
+     * height of the keyboard is determined based on the width.
+     * 
+     * @param {Number} width The width to resize this Guacamole.OnScreenKeyboard
+     *                       to, in pixels.
+     */
+    this.resize = function(width) {
+
+        // Get pixel size of a unit
+        var unit = Math.floor(width * 10 / osk.layout.width) / 10;
+
+        // Resize all scaled elements
+        for (var i=0; i&lt;scaledElements.length; i++) {
+            var scaledElement = scaledElements[i];
+            scaledElement.scale(unit);
+        }
+
+    };
+
+    /**
+     * Given the name of a key and its corresponding definition, which may be
+     * an array of keys objects, a number (keysym), a string (key title), or a
+     * single key object, returns an array of key objects, deriving any missing
+     * properties as needed, and ensuring the key name is defined.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the key being coerced into an array of Key objects.
+     *
+     * @param {Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]} object
+     *     The object defining the behavior of the key having the given name,
+     *     which may be the title of the key (a string), the keysym (a number),
+     *     a single Key object, or an array of Key objects.
+     *     
+     * @returns {Guacamole.OnScreenKeyboard.Key[]}
+     *     An array of all keys associated with the given name.
+     */
+    var asKeyArray = function asKeyArray(name, object) {
+
+        // If already an array, just coerce into a true Key[] 
+        if (object instanceof Array) {
+            var keys = [];
+            for (var i=0; i &lt; object.length; i++) {
+                keys.push(new Guacamole.OnScreenKeyboard.Key(object[i], name));
+            }
+            return keys;
+        }
+
+        // Derive key object from keysym if that's all we have
+        if (typeof object === 'number') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name   : name,
+                keysym : object
+            })];
+        }
+
+        // Derive key object from title if that's all we have
+        if (typeof object === 'string') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name  : name,
+                title : object
+            })];
+        }
+
+        // Otherwise, assume it's already a key object, just not an array
+        return [new Guacamole.OnScreenKeyboard.Key(object, name)];
+
+    };
+
+    /**
+     * Converts the rather forgiving key mapping allowed by
+     * Guacamole.OnScreenKeyboard.Layout into a rigorous mapping of key name
+     * to key definition, where the key definition is always an array of Key
+     * objects.
+     *
+     * @private
+     * @param {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>} keys
+     *     A mapping of key name to key definition, where the key definition is
+     *     the title of the key (a string), the keysym (a number), a single
+     *     Key object, or an array of Key objects.
+     *
+     * @returns {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     *     A more-predictable mapping of key name to key definition, where the
+     *     key definition is always simply an array of Key objects.
+     */
+    var getKeys = function getKeys(keys) {
+
+        var keyArrays = {};
+
+        // Coerce all keys into individual key arrays
+        for (var name in layout.keys) {
+            keyArrays[name] = asKeyArray(name, keys[name]);
+        }
+
+        return keyArrays;
+
+    };
+
+    /**
+     * Map of all key names to their corresponding set of keys. Each key name
+     * may correspond to multiple keys due to the effect of modifiers.
+     *
+     * @type {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = getKeys(layout.keys);
+
+    /**
+     * Given an arbitrary string representing the name of some component of the
+     * on-screen keyboard, returns a string formatted for use as a CSS class
+     * name. The result will be lowercase. Word boundaries previously denoted
+     * by CamelCase will be replaced by individual hyphens, as will all
+     * contiguous non-alphanumeric characters.
+     *
+     * @private
+     * @param {String} name
+     *     An arbitrary string representing the name of some component of the
+     *     on-screen keyboard.
+     *
+     * @returns {String}
+     *     A string formatted for use as a CSS class name.
+     */
+    var getCSSName = function getCSSName(name) {
+
+        // Convert name from possibly-CamelCase to hyphenated lowercase
+        var cssName = name
+               .replace(/([a-z])([A-Z])/g, '$1-$2')
+               .replace(/[^A-Za-z0-9]+/g, '-')
+               .toLowerCase();
+
+        return cssName;
+
+    };
+
+    /**
+     * Appends DOM elements to the given element as dictated by the layout
+     * structure object provided. If a name is provided, an additional CSS
+     * class, prepended with "guac-keyboard-", will be added to the top-level
+     * element.
+     * 
+     * If the layout structure object is an array, all elements within that
+     * array will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group".
+     *
+     * If the layout structure object is an object, all properties within that
+     * object will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group". The
+     * name of each property will be applied as the name of each child object
+     * for the sake of CSS. Each property will be added in sorted order.
+     *
+     * If the layout structure object is a string, the key having that name
+     * will be appended. The key will be given the CSS class
+     * "guac-keyboard-key" and "guac-keyboard-key-NAME", where NAME is the name
+     * of the key. If the name of the key is a single character, this will
+     * first be transformed into the C-style hexadecimal literal for the
+     * Unicode codepoint of that character. For example, the key "A" would
+     * become "guac-keyboard-key-0x41".
+     * 
+     * If the layout structure object is a number, a gap of that size will be
+     * inserted. The gap will be given the CSS class "guac-keyboard-gap", and
+     * will be scaled according to the same size units as each key.
+     *
+     * @private
+     * @param {Element} element
+     *     The element to append elements to.
+     *
+     * @param {Array|Object|String|Number} object
+     *     The layout structure object to use when constructing the elements to
+     *     append.
+     *
+     * @param {String} [name]
+     *     The name of the top-level element being appended, if any.
+     */
+    var appendElements = function appendElements(element, object, name) {
+
+        var i;
+
+        // Create div which will become the group or key
+        var div = document.createElement('div');
+
+        // Add class based on name, if name given
+        if (name)
+            addClass(div, 'guac-keyboard-' + getCSSName(name));
+
+        // If an array, append each element
+        if (object instanceof Array) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all elements of array
+            for (i=0; i &lt; object.length; i++)
+                appendElements(div, object[i]);
+
+        }
+
+        // If an object, append each property value
+        else if (object instanceof Object) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all children, sorted by name
+            var names = Object.keys(object).sort();
+            for (i=0; i &lt; names.length; i++) {
+                var name = names[i];
+                appendElements(div, object[name], name);
+            }
+
+        }
+
+        // If a number, create as a gap 
+        else if (typeof object === 'number') {
+
+            // Add gap class
+            addClass(div, 'guac-keyboard-gap');
+
+            // Maintain scale
+            scaledElements.push(new ScaledElement(div, object, object));
+
+        }
+
+        // If a string, create as a key
+        else if (typeof object === 'string') {
+
+            // If key name is only one character, use codepoint for name
+            var keyName = object;
+            if (keyName.length === 1)
+                keyName = '0x' + keyName.charCodeAt(0).toString(16);
+
+            // Add key container class
+            addClass(div, 'guac-keyboard-key-container');
+
+            // Create key element which will contain all possible caps
+            var keyElement = document.createElement('div');
+            keyElement.className = 'guac-keyboard-key '
+                                 + 'guac-keyboard-key-' + getCSSName(keyName);
+
+            // Add all associated keys as caps within DOM
+            var keys = osk.keys[object];
+            if (keys) {
+                for (i=0; i &lt; keys.length; i++) {
+
+                    // Get current key
+                    var key = keys[i];
+
+                    // Create cap element for key
+                    var capElement = document.createElement('div');
+                    capElement.className   = 'guac-keyboard-cap';
+                    capElement.textContent = key.title;
+
+                    // Add classes for any requirements
+                    for (var j=0; j &lt; key.requires.length; j++) {
+                        var requirement = key.requires[j];
+                        addClass(capElement, 'guac-keyboard-requires-' + getCSSName(requirement));
+                        addClass(keyElement, 'guac-keyboard-uses-'     + getCSSName(requirement));
+                    }
+
+                    // Add cap to key within DOM
+                    keyElement.appendChild(capElement);
+
+                }
+            }
+
+            // Add key to DOM, maintain scale
+            div.appendChild(keyElement);
+            scaledElements.push(new ScaledElement(div, osk.layout.keyWidths[object] || 1, 1, true));
+
+            /**
+             * Handles a touch event which results in the pressing of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchPress = function touchPress(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                press(object, keyElement);
+            };
+
+            /**
+             * Handles a touch event which results in the release of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchRelease = function touchRelease(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                release(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the pressing of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mousePress = function mousePress(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    press(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the release of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mouseRelease = function mouseRelease(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    release(object, keyElement);
+            };
+
+            // Handle touch events on key
+            keyElement.addEventListener("touchstart", touchPress,   true);
+            keyElement.addEventListener("touchend",   touchRelease, true);
+
+            // Handle mouse events on key
+            keyElement.addEventListener("mousedown", mousePress,   true);
+            keyElement.addEventListener("mouseup",   mouseRelease, true);
+            keyElement.addEventListener("mouseout",  mouseRelease, true);
+
+        } // end if object is key name
+
+        // Add newly-created group/key
+        element.appendChild(div);
+
+    };
+
+    // Create keyboard layout in DOM
+    appendElements(keyboard, layout.layout);
+
+};
+
+/**
+ * Represents an entire on-screen keyboard layout, including all available
+ * keys, their behaviors, and their relative position and sizing.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this layout.
+ */
+Guacamole.OnScreenKeyboard.Layout = function(template) {
+
+    /**
+     * The language of keyboard layout, such as "en_US". This property is for
+     * informational purposes only, but it is recommend to conform to the
+     * [language code]_[country code] format.
+     *
+     * @type {String}
+     */
+    this.language = template.language;
+
+    /**
+     * The type of keyboard layout, such as "qwerty". This property is for
+     * informational purposes only, and does not conform to any standard.
+     *
+     * @type {String}
+     */
+    this.type = template.type;
+
+    /**
+     * Map of key name to corresponding keysym, title, or key object. If only
+     * the keysym or title is provided, the key object will be created
+     * implicitly. In all cases, the name property of the key object will be
+     * taken from the name given in the mapping.
+     *
+     * @type {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = template.keys;
+
+    /**
+     * Arbitrarily nested, arbitrarily grouped key names. The contents of the
+     * layout will be traversed to produce an identically-nested grouping of
+     * keys in the DOM tree. All strings will be transformed into their
+     * corresponding sets of keys, while all objects and arrays will be
+     * transformed into named groups and anonymous groups respectively. Any
+     * numbers present will be transformed into gaps of that size, scaled
+     * according to the same units as each key.
+     *
+     * @type {Object}
+     */
+    this.layout = template.layout;
+
+    /**
+     * The width of the entire keyboard, in arbitrary units. The width of each
+     * key is relative to this width, as both width values are assumed to be in
+     * the same units. The conversion factor between these units and pixels is
+     * derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+     *
+     * @type {Number}
+     */
+    this.width = template.width;
+
+    /**
+     * The width of each key, in arbitrary units, relative to other keys in
+     * this layout. The true pixel size of each key will be determined by the
+     * overall size of the keyboard. If not defined here, the width of each
+     * key will default to 1.
+     *
+     * @type {Object.&lt;String, Number>}
+     */
+    this.keyWidths = template.keyWidths || {};
+
+};
+
+/**
+ * Represents a single key, or a single possible behavior of a key. Each key
+ * on the on-screen keyboard must have at least one associated
+ * Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+ * implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+ * depends on modifier states.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Key|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this key.
+ *     
+ * @param {String} [name]
+ *     The name to use instead of any name provided within the template, if
+ *     any. If omitted, the name within the template will be used, assuming the
+ *     template contains a name.
+ */
+Guacamole.OnScreenKeyboard.Key = function(template, name) {
+
+    /**
+     * The unique name identifying this key within the keyboard layout.
+     *
+     * @type {String}
+     */
+    this.name = name || template.name;
+
+    /**
+     * The human-readable title that will be displayed to the user within the
+     * key. If not provided, this will be derived from the key name.
+     *
+     * @type {String}
+     */
+    this.title = template.title || this.name;
+
+    /**
+     * The keysym to be pressed/released when this key is pressed/released. If
+     * not provided, this will be derived from the title if the title is a
+     * single character.
+     *
+     * @type {Number}
+     */
+    this.keysym = template.keysym || (function deriveKeysym(title) {
+
+        // Do not derive keysym if title is not exactly one character
+        if (!title || title.length !== 1)
+            return null;
+
+        // For characters between U+0000 and U+00FF, the keysym is the codepoint
+        var charCode = title.charCodeAt(0);
+        if (charCode >= 0x0000 &amp;&amp; charCode &lt;= 0x00FF)
+            return charCode;
+
+        // For characters between U+0100 and U+10FFFF, the keysym is the codepoint or'd with 0x01000000
+        if (charCode >= 0x0100 &amp;&amp; charCode &lt;= 0x10FFFF)
+            return 0x01000000 | charCode;
+
+        // Unable to derive keysym
+        return null;
+
+    })(this.title);
+
+    /**
+     * The name of the modifier set when the key is pressed and cleared when
+     * this key is released, if any. The names of modifiers are distinct from
+     * the names of keys; both the "RightShift" and "LeftShift" keys may set
+     * the "shift" modifier, for example. By default, the key will affect no
+     * modifiers.
+     * 
+     * @type {String}
+     */
+    this.modifier = template.modifier;
+
+    /**
+     * An array containing the names of each modifier required for this key to
+     * have an effect. For example, a lowercase letter may require nothing,
+     * while an uppercase letter would require "shift", assuming the Shift key
+     * is named "shift" within the layout. By default, the key will require
+     * no modifiers.
+     *
+     * @type {String[]}
+     */
+    this.requires = template.requires || [];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/OutputStream.js.html b/doc/1.3.0/guacamole-common-js/OutputStream.js.html
new file mode 100644
index 0000000..2d1163e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/OutputStream.js.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OutputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OutputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract stream which can receive data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.OutputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Fired whenever an acknowledgement is received from the server, indicating
+     * that a stream operation has completed, or an error has occurred.
+     * 
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Writes the given base64-encoded data to this stream as a blob.
+     * 
+     * @param {String} data The base64-encoded data to send.
+     */
+    this.sendBlob = function(data) {
+        client.sendBlob(guac_stream.index, data);
+    };
+
+    /**
+     * Closes this stream.
+     */
+    this.sendEnd = function() {
+        client.endStream(guac_stream.index);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Parser.js.html b/doc/1.3.0/guacamole-common-js/Parser.js.html
new file mode 100644
index 0000000..af9015a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Parser.js.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Parser.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Parser.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Simple Guacamole protocol parser that invokes an oninstruction event when
+ * full instructions are available from data received via receive().
+ * 
+ * @constructor
+ */
+Guacamole.Parser = function() {
+
+    /**
+     * Reference to this parser.
+     * @private
+     */
+    var parser = this;
+
+    /**
+     * Current buffer of received data. This buffer grows until a full
+     * element is available. After a full element is available, that element
+     * is flushed into the element buffer.
+     * 
+     * @private
+     */
+    var buffer = "";
+
+    /**
+     * Buffer of all received, complete elements. After an entire instruction
+     * is read, this buffer is flushed, and a new instruction begins.
+     * 
+     * @private
+     */
+    var element_buffer = [];
+
+    // The location of the last element's terminator
+    var element_end = -1;
+
+    // Where to start the next length search or the next element
+    var start_index = 0;
+
+    /**
+     * Appends the given instruction data packet to the internal buffer of
+     * this Guacamole.Parser, executing all completed instructions at
+     * the beginning of this buffer, if any.
+     *
+     * @param {String} packet The instruction data to receive.
+     */
+    this.receive = function(packet) {
+
+        // Truncate buffer as necessary
+        if (start_index > 4096 &amp;&amp; element_end >= start_index) {
+
+            buffer = buffer.substring(start_index);
+
+            // Reset parse relative to truncation
+            element_end -= start_index;
+            start_index = 0;
+
+        }
+
+        // Append data to buffer
+        buffer += packet;
+
+        // While search is within currently received data
+        while (element_end &lt; buffer.length) {
+
+            // If we are waiting for element data
+            if (element_end >= start_index) {
+
+                // We now have enough data for the element. Parse.
+                var element = buffer.substring(start_index, element_end);
+                var terminator = buffer.substring(element_end, element_end+1);
+
+                // Add element to array
+                element_buffer.push(element);
+
+                // If last element, handle instruction
+                if (terminator == ";") {
+
+                    // Get opcode
+                    var opcode = element_buffer.shift();
+
+                    // Call instruction handler.
+                    if (parser.oninstruction != null)
+                        parser.oninstruction(opcode, element_buffer);
+
+                    // Clear elements
+                    element_buffer.length = 0;
+
+                }
+                else if (terminator != ',')
+                    throw new Error("Illegal terminator.");
+
+                // Start searching for length at character after
+                // element terminator
+                start_index = element_end + 1;
+
+            }
+
+            // Search for end of length
+            var length_end = buffer.indexOf(".", start_index);
+            if (length_end != -1) {
+
+                // Parse length
+                var length = parseInt(buffer.substring(element_end+1, length_end));
+                if (isNaN(length))
+                    throw new Error("Non-numeric character in element length.");
+
+                // Calculate start of element
+                start_index = length_end + 1;
+
+                // Calculate location of element terminator
+                element_end = start_index + length;
+
+            }
+            
+            // If no period yet, continue search when more data
+            // is received
+            else {
+                start_index = buffer.length;
+                break;
+            }
+
+        } // end parse loop
+
+    };
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/RawAudioFormat.js.html b/doc/1.3.0/guacamole-common-js/RawAudioFormat.js.html
new file mode 100644
index 0000000..80aa439
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/RawAudioFormat.js.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: RawAudioFormat.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: RawAudioFormat.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A description of the format of raw PCM audio, such as that used by
+ * Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+ * describes the number of bytes per sample, the number of channels, and the
+ * overall sample rate.
+ *
+ * @constructor
+ * @param {Guacamole.RawAudioFormat|Object} template
+ *     The object whose properties should be copied into the corresponding
+ *     properties of the new Guacamole.RawAudioFormat.
+ */
+Guacamole.RawAudioFormat = function RawAudioFormat(template) {
+
+    /**
+     * The number of bytes in each sample of audio data. This value is
+     * independent of the number of channels.
+     *
+     * @type {Number}
+     */
+    this.bytesPerSample = template.bytesPerSample;
+
+    /**
+     * The number of audio channels (ie: 1 for mono, 2 for stereo).
+     *
+     * @type {Number}
+     */
+    this.channels = template.channels;
+
+    /**
+     * The number of samples per second, per channel.
+     *
+     * @type {Number}
+     */
+    this.rate = template.rate;
+
+};
+
+/**
+ * Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+ * which describes the type of raw audio data represented by that mimetype. If
+ * the mimetype is not a supported raw audio data mimetype, null is returned.
+ *
+ * @param {String} mimetype
+ *     The audio mimetype to parse.
+ *
+ * @returns {Guacamole.RawAudioFormat}
+ *     A new Guacamole.RawAudioFormat which describes the type of raw
+ *     audio data represented by the given mimetype, or null if the given
+ *     mimetype is not supported.
+ */
+Guacamole.RawAudioFormat.parse = function parseFormat(mimetype) {
+
+    var bytesPerSample;
+
+    // Rate is absolutely required - if null is still present later, the
+    // mimetype must not be supported
+    var rate = null;
+
+    // Default for both "audio/L8" and "audio/L16" is one channel
+    var channels = 1;
+
+    // "audio/L8" has one byte per sample
+    if (mimetype.substring(0, 9) === 'audio/L8;') {
+        mimetype = mimetype.substring(9);
+        bytesPerSample = 1;
+    }
+
+    // "audio/L16" has two bytes per sample
+    else if (mimetype.substring(0, 10) === 'audio/L16;') {
+        mimetype = mimetype.substring(10);
+        bytesPerSample = 2;
+    }
+
+    // All other types are unsupported
+    else
+        return null;
+
+    // Parse all parameters
+    var parameters = mimetype.split(',');
+    for (var i = 0; i &lt; parameters.length; i++) {
+
+        var parameter = parameters[i];
+
+        // All parameters must have an equals sign separating name from value
+        var equals = parameter.indexOf('=');
+        if (equals === -1)
+            return null;
+
+        // Parse name and value from parameter string
+        var name  = parameter.substring(0, equals);
+        var value = parameter.substring(equals+1);
+
+        // Handle each supported parameter
+        switch (name) {
+
+            // Number of audio channels
+            case 'channels':
+                channels = parseInt(value);
+                break;
+
+            // Sample rate
+            case 'rate':
+                rate = parseInt(value);
+                break;
+
+            // All other parameters are unsupported
+            default:
+                return null;
+
+        }
+
+    };
+
+    // The rate parameter is required
+    if (rate === null)
+        return null;
+
+    // Return parsed format details
+    return new Guacamole.RawAudioFormat({
+        bytesPerSample : bytesPerSample,
+        channels       : channels,
+        rate           : rate
+    });
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/SessionRecording.js.html b/doc/1.3.0/guacamole-common-js/SessionRecording.js.html
new file mode 100644
index 0000000..88b4ebf
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/SessionRecording.js.html
@@ -0,0 +1,880 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: SessionRecording.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: SessionRecording.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A recording of a Guacamole session. Given a {@link Guacamole.Tunnel}, the
+ * Guacamole.SessionRecording automatically handles incoming Guacamole
+ * instructions, storing them for playback. Playback of the recording may be
+ * controlled through function calls to the Guacamole.SessionRecording, even
+ * while the recording has not yet finished being created or downloaded.
+ *
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel
+ *     The Guacamole.Tunnel from which the instructions of the recording should
+ *     be read.
+ */
+Guacamole.SessionRecording = function SessionRecording(tunnel) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording}
+     */
+    var recording = this;
+
+    /**
+     * The minimum number of characters which must have been read between
+     * keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_CHAR_INTERVAL = 16384;
+
+    /**
+     * The minimum number of milliseconds which must elapse between keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_TIME_INTERVAL = 5000;
+
+    /**
+     * The maximum amount of time to spend in any particular seek operation
+     * before returning control to the main thread, in milliseconds. Seek
+     * operations exceeding this amount of time will proceed asynchronously.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MAXIMUM_SEEK_TIME = 5;
+
+    /**
+     * All frames parsed from the provided tunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * All instructions which have been read since the last frame was added to
+     * the frames array.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    var instructions = [];
+
+    /**
+     * The approximate number of characters which have been read from the
+     * provided tunnel since the last frame was flagged for use as a keyframe.
+     *
+     * @private
+     * @type {Number}
+     */
+    var charactersSinceLastKeyframe = 0;
+
+    /**
+     * The timestamp of the last frame which was flagged for use as a keyframe.
+     * If no timestamp has yet been flagged, this will be 0.
+     *
+     * @private
+     * @type {Number}
+     */
+    var lastKeyframeTimestamp = 0;
+
+    /**
+     * Tunnel which feeds arbitrary instructions to the client used by this
+     * Guacamole.SessionRecording for playback of the session recording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var playbackTunnel = new Guacamole.SessionRecording._PlaybackTunnel();
+
+    /**
+     * Guacamole.Client instance used for visible playback of the session
+     * recording.
+     *
+     * @private
+     * @type {Guacamole.Client}
+     */
+    var playbackClient = new Guacamole.Client(playbackTunnel);
+
+    /**
+     * The current frame rendered within the playback client. If no frame is
+     * yet rendered, this will be -1.
+     *
+     * @private
+     * @type {Number}
+     */
+    var currentFrame = -1;
+
+    /**
+     * The timestamp of the frame when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startVideoTimestamp = null;
+
+    /**
+     * The real-world timestamp when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startRealTimestamp = null;
+
+    /**
+     * The ID of the timeout which will continue the in-progress seek
+     * operation. If no seek operation is in progress, the ID stored here (if
+     * any) will not be valid.
+     *
+     * @private
+     * @type {Number}
+     */
+    var seekTimeout = null;
+
+    // Start playback client connected
+    playbackClient.connect();
+
+    // Hide cursor unless mouse position is received
+    playbackClient.getDisplay().showCursor(false);
+
+    // Read instructions from provided tunnel, extracting each frame
+    tunnel.oninstruction = function handleInstruction(opcode, args) {
+
+        // Store opcode and arguments for received instruction
+        var instruction = new Guacamole.SessionRecording._Frame.Instruction(opcode, args.slice());
+        instructions.push(instruction);
+        charactersSinceLastKeyframe += instruction.getSize();
+
+        // Once a sync is received, store all instructions since the last
+        // frame as a new frame
+        if (opcode === 'sync') {
+
+            // Parse frame timestamp from sync instruction
+            var timestamp = parseInt(args[0]);
+
+            // Add a new frame containing the instructions read since last frame
+            var frame = new Guacamole.SessionRecording._Frame(timestamp, instructions);
+            frames.push(frame);
+
+            // This frame should eventually become a keyframe if enough data
+            // has been processed and enough recording time has elapsed, or if
+            // this is the absolute first frame
+            if (frames.length === 1 || (charactersSinceLastKeyframe >= KEYFRAME_CHAR_INTERVAL
+                    &amp;&amp; timestamp - lastKeyframeTimestamp >= KEYFRAME_TIME_INTERVAL)) {
+                frame.keyframe = true;
+                lastKeyframeTimestamp = timestamp;
+                charactersSinceLastKeyframe = 0;
+            }
+
+            // Clear set of instructions in preparation for next frame
+            instructions = [];
+
+            // Notify that additional content is available
+            if (recording.onprogress)
+                recording.onprogress(recording.getDuration());
+
+        }
+
+    };
+
+    /**
+     * Converts the given absolute timestamp to a timestamp which is relative
+     * to the first frame in the recording.
+     *
+     * @private
+     * @param {Number} timestamp
+     *     The timestamp to convert to a relative timestamp.
+     *
+     * @returns {Number}
+     *     The difference in milliseconds between the given timestamp and the
+     *     first frame of the recording, or zero if no frames yet exist.
+     */
+    var toRelativeTimestamp = function toRelativeTimestamp(timestamp) {
+
+        // If no frames yet exist, all timestamps are zero
+        if (frames.length === 0)
+            return 0;
+
+        // Calculate timestamp relative to first frame
+        return timestamp - frames[0].timestamp;
+
+    };
+
+    /**
+     * Searches through the given region of frames for the frame having a
+     * relative timestamp closest to the timestamp given.
+     *
+     * @private
+     * @param {Number} minIndex
+     *     The index of the first frame in the region (the frame having the
+     *     smallest timestamp).
+     *
+     * @param {Number} maxIndex
+     *     The index of the last frame in the region (the frame having the
+     *     largest timestamp).
+     *
+     * @param {Number} timestamp
+     *     The relative timestamp to search for, where zero denotes the first
+     *     frame in the recording.
+     *
+     * @returns {Number}
+     *     The index of the frame having a relative timestamp closest to the
+     *     given value.
+     */
+    var findFrame = function findFrame(minIndex, maxIndex, timestamp) {
+
+        // Do not search if the region contains only one element
+        if (minIndex === maxIndex)
+            return minIndex;
+
+        // Split search region into two halves
+        var midIndex = Math.floor((minIndex + maxIndex) / 2);
+        var midTimestamp = toRelativeTimestamp(frames[midIndex].timestamp);
+
+        // If timestamp is within lesser half, search again within that half
+        if (timestamp &lt; midTimestamp &amp;&amp; midIndex > minIndex)
+            return findFrame(minIndex, midIndex - 1, timestamp);
+
+        // If timestamp is within greater half, search again within that half
+        if (timestamp > midTimestamp &amp;&amp; midIndex &lt; maxIndex)
+            return findFrame(midIndex + 1, maxIndex, timestamp);
+
+        // Otherwise, we lucked out and found a frame with exactly the
+        // desired timestamp
+        return midIndex;
+
+    };
+
+    /**
+     * Replays the instructions associated with the given frame, sending those
+     * instructions to the playback client.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame within the frames array which should be
+     *     replayed.
+     */
+    var replayFrame = function replayFrame(index) {
+
+        var frame = frames[index];
+
+        // Replay all instructions within the retrieved frame
+        for (var i = 0; i &lt; frame.instructions.length; i++) {
+            var instruction = frame.instructions[i];
+            playbackTunnel.receiveInstruction(instruction.opcode, instruction.args);
+        }
+
+        // Store client state if frame is flagged as a keyframe
+        if (frame.keyframe &amp;&amp; !frame.clientState) {
+            playbackClient.exportState(function storeClientState(state) {
+                frame.clientState = state;
+            });
+        }
+
+    };
+
+    /**
+     * Moves the playback position to the given frame, resetting the state of
+     * the playback client and replaying frames as necessary. The seek
+     * operation will proceed asynchronously. If a seek operation is already in
+     * progress, that seek is first aborted. The progress of the seek operation
+     * can be observed through the onseek handler and the provided callback.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame which should become the new playback
+     *     position.
+     *
+     * @param {function} callback
+     *     The callback to invoke once the seek operation has completed.
+     *
+     * @param {Number} [delay=0]
+     *     The number of milliseconds that the seek operation should be
+     *     scheduled to take.
+     */
+    var seekToFrame = function seekToFrame(index, callback, delay) {
+
+        // Abort any in-progress seek
+        abortSeek();
+
+        // Replay frames asynchronously
+        seekTimeout = window.setTimeout(function continueSeek() {
+
+            var startIndex;
+
+            // Back up until startIndex represents current state
+            for (startIndex = index; startIndex >= 0; startIndex--) {
+
+                var frame = frames[startIndex];
+
+                // If we've reached the current frame, startIndex represents
+                // current state by definition
+                if (startIndex === currentFrame)
+                    break;
+
+                // If frame has associated absolute state, make that frame the
+                // current state
+                if (frame.clientState) {
+                    playbackClient.importState(frame.clientState);
+                    break;
+                }
+
+            }
+
+            // Advance to frame index after current state
+            startIndex++;
+
+            var startTime = new Date().getTime();
+
+            // Replay any applicable incremental frames
+            for (; startIndex &lt;= index; startIndex++) {
+
+                // Stop seeking if the operation is taking too long
+                var currentTime = new Date().getTime();
+                if (currentTime - startTime >= MAXIMUM_SEEK_TIME)
+                    break;
+
+                replayFrame(startIndex);
+            }
+
+            // Current frame is now at requested index
+            currentFrame = startIndex - 1;
+
+            // Notify of changes in position
+            if (recording.onseek)
+                recording.onseek(recording.getPosition());
+
+            // If the seek operation has not yet completed, schedule continuation
+            if (currentFrame !== index)
+                seekToFrame(index, callback,
+                    Math.max(delay - (new Date().getTime() - startTime), 0));
+
+            // Notify that the requested seek has completed
+            else
+                callback();
+
+        }, delay || 0);
+
+    };
+
+    /**
+     * Aborts the seek operation currently in progress, if any. If no seek
+     * operation is in progress, this function has no effect.
+     *
+     * @private
+     */
+    var abortSeek = function abortSeek() {
+        window.clearTimeout(seekTimeout);
+    };
+
+    /**
+     * Advances playback to the next frame in the frames array and schedules
+     * playback of the frame following that frame based on their associated
+     * timestamps. If no frames exist after the next frame, playback is paused.
+     *
+     * @private
+     */
+    var continuePlayback = function continuePlayback() {
+
+        // If frames remain after advancing, schedule next frame
+        if (currentFrame + 1 &lt; frames.length) {
+
+            // Pull the upcoming frame
+            var next = frames[currentFrame + 1];
+
+            // Calculate the real timestamp corresponding to when the next
+            // frame begins
+            var nextRealTimestamp = next.timestamp - startVideoTimestamp + startRealTimestamp;
+
+            // Calculate the relative delay between the current time and
+            // the next frame start
+            var delay = Math.max(nextRealTimestamp - new Date().getTime(), 0);
+
+            // Advance to next frame after enough time has elapsed
+            seekToFrame(currentFrame + 1, function frameDelayElapsed() {
+                continuePlayback();
+            }, delay);
+
+        }
+
+        // Otherwise stop playback
+        else
+            recording.pause();
+
+    };
+
+    /**
+     * Fired when new frames have become available while the recording is
+     * being downloaded.
+     *
+     * @event
+     * @param {Number} duration
+     *     The new duration of the recording, in milliseconds.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired whenever playback of the recording has started.
+     *
+     * @event
+     */
+    this.onplay = null;
+
+    /**
+     * Fired whenever playback of the recording has been paused. This may
+     * happen when playback is explicitly paused with a call to pause(), or
+     * when playback is implicitly paused due to reaching the end of the
+     * recording.
+     *
+     * @event
+     */
+    this.onpause = null;
+
+    /**
+     * Fired whenever the playback position within the recording changes.
+     *
+     * @event
+     * @param {Number} position
+     *     The new position within the recording, in milliseconds.
+     */
+    this.onseek = null;
+
+    /**
+     * Connects the underlying tunnel, beginning download of the Guacamole
+     * session. Playback of the Guacamole session cannot occur until at least
+     * one frame worth of instructions has been downloaded.
+     *
+     * @param {String} data
+     *     The data to send to the tunnel when connecting.
+     */
+    this.connect = function connect(data) {
+        tunnel.connect(data);
+    };
+
+    /**
+     * Disconnects the underlying tunnel, stopping further download of the
+     * Guacamole session.
+     */
+    this.disconnect = function disconnect() {
+        tunnel.disconnect();
+    };
+
+    /**
+     * Returns the underlying display of the Guacamole.Client used by this
+     * Guacamole.SessionRecording for playback. The display contains an Element
+     * which can be added to the DOM, causing the display (and thus playback of
+     * the recording) to become visible.
+     *
+     * @return {Guacamole.Display}
+     *     The underlying display of the Guacamole.Client used by this
+     *     Guacamole.SessionRecording for playback.
+     */
+    this.getDisplay = function getDisplay() {
+        return playbackClient.getDisplay();
+    };
+
+    /**
+     * Returns whether playback is currently in progress.
+     *
+     * @returns {Boolean}
+     *     true if playback is currently in progress, false otherwise.
+     */
+    this.isPlaying = function isPlaying() {
+        return !!startVideoTimestamp;
+    };
+
+    /**
+     * Returns the current playback position within the recording, in
+     * milliseconds, where zero is the start of the recording.
+     *
+     * @returns {Number}
+     *     The current playback position within the recording, in milliseconds.
+     */
+    this.getPosition = function getPosition() {
+
+        // Position is simply zero if playback has not started at all
+        if (currentFrame === -1)
+            return 0;
+
+        // Return current position as a millisecond timestamp relative to the
+        // start of the recording
+        return toRelativeTimestamp(frames[currentFrame].timestamp);
+
+    };
+
+    /**
+     * Returns the duration of this recording, in milliseconds. If the
+     * recording is still being downloaded, this value will gradually increase.
+     *
+     * @returns {Number}
+     *     The duration of this recording, in milliseconds.
+     */
+    this.getDuration = function getDuration() {
+
+        // If no frames yet exist, duration is zero
+        if (frames.length === 0)
+            return 0;
+
+        // Recording duration is simply the timestamp of the last frame
+        return toRelativeTimestamp(frames[frames.length - 1].timestamp);
+
+    };
+
+    /**
+     * Begins continuous playback of the recording downloaded thus far.
+     * Playback of the recording will continue until pause() is invoked or
+     * until no further frames exist. Playback is initially paused when a
+     * Guacamole.SessionRecording is created, and must be explicitly started
+     * through a call to this function. If playback is already in progress,
+     * this function has no effect. If a seek operation is in progress,
+     * playback resumes at the current position, and the seek is aborted as if
+     * completed.
+     */
+    this.play = function play() {
+
+        // If playback is not already in progress and frames remain,
+        // begin playback
+        if (!recording.isPlaying() &amp;&amp; currentFrame + 1 &lt; frames.length) {
+
+            // Notify that playback is starting
+            if (recording.onplay)
+                recording.onplay();
+
+            // Store timestamp of playback start for relative scheduling of
+            // future frames
+            var next = frames[currentFrame + 1];
+            startVideoTimestamp = next.timestamp;
+            startRealTimestamp = new Date().getTime();
+
+            // Begin playback of video
+            continuePlayback();
+
+        }
+
+    };
+
+    /**
+     * Seeks to the given position within the recording. If the recording is
+     * currently being played back, playback will continue after the seek is
+     * performed. If the recording is currently paused, playback will be
+     * paused after the seek is performed. If a seek operation is already in
+     * progress, that seek is first aborted. The seek operation will proceed
+     * asynchronously.
+     *
+     * @param {Number} position
+     *     The position within the recording to seek to, in milliseconds.
+     *
+     * @param {function} [callback]
+     *     The callback to invoke once the seek operation has completed.
+     */
+    this.seek = function seek(position, callback) {
+
+        // Do not seek if no frames exist
+        if (frames.length === 0)
+            return;
+
+        // Pause playback, preserving playback state
+        var originallyPlaying = recording.isPlaying();
+        recording.pause();
+
+        // Perform seek
+        seekToFrame(findFrame(0, frames.length - 1, position), function restorePlaybackState() {
+
+            // Restore playback state
+            if (originallyPlaying)
+                recording.play();
+
+            // Notify that seek has completed
+            if (callback)
+                callback();
+
+        });
+
+    };
+
+    /**
+     * Pauses playback of the recording, if playback is currently in progress.
+     * If playback is not in progress, this function has no effect. If a seek
+     * operation is in progress, the seek is aborted. Playback is initially
+     * paused when a Guacamole.SessionRecording is created, and must be
+     * explicitly started through a call to play().
+     */
+    this.pause = function pause() {
+
+        // Abort any in-progress seek / playback
+        abortSeek();
+
+        // Stop playback only if playback is in progress
+        if (recording.isPlaying()) {
+
+            // Notify that playback is stopping
+            if (recording.onpause)
+                recording.onpause();
+
+            // Playback is stopped
+            startVideoTimestamp = null;
+            startRealTimestamp = null;
+
+        }
+
+    };
+
+};
+
+/**
+ * A single frame of Guacamole session data. Each frame is made up of the set
+ * of instructions used to generate that frame, and the timestamp as dictated
+ * by the "sync" instruction terminating the frame. Optionally, a frame may
+ * also be associated with a snapshot of Guacamole client state, such that the
+ * frame can be rendered without replaying all previous frames.
+ *
+ * @private
+ * @constructor
+ * @param {Number} timestamp
+ *     The timestamp of this frame, as dictated by the "sync" instruction which
+ *     terminates the frame.
+ *
+ * @param {Guacamole.SessionRecording._Frame.Instruction[]} instructions
+ *     All instructions which are necessary to generate this frame relative to
+ *     the previous frame in the Guacamole session.
+ */
+Guacamole.SessionRecording._Frame = function _Frame(timestamp, instructions) {
+
+    /**
+     * Whether this frame should be used as a keyframe if possible. This value
+     * is purely advisory. The stored clientState must eventually be manually
+     * set for the frame to be used as a keyframe. By default, frames are not
+     * keyframes.
+     *
+     * @type {Boolean}
+     * @default false
+     */
+    this.keyframe = false;
+
+    /**
+     * The timestamp of this frame, as dictated by the "sync" instruction which
+     * terminates the frame.
+     *
+     * @type {Number}
+     */
+    this.timestamp = timestamp;
+
+    /**
+     * All instructions which are necessary to generate this frame relative to
+     * the previous frame in the Guacamole session.
+     *
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    this.instructions = instructions;
+
+    /**
+     * A snapshot of client state after this frame was rendered, as returned by
+     * a call to exportState(). If no such snapshot has been taken, this will
+     * be null.
+     *
+     * @type {Object}
+     * @default null
+     */
+    this.clientState = null;
+
+};
+
+/**
+ * A Guacamole protocol instruction. Each Guacamole protocol instruction is
+ * made up of an opcode and set of arguments.
+ *
+ * @private
+ * @constructor
+ * @param {String} opcode
+ *     The opcode of this Guacamole instruction.
+ *
+ * @param {String[]} args
+ *     All arguments associated with this Guacamole instruction.
+ */
+Guacamole.SessionRecording._Frame.Instruction = function Instruction(opcode, args) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._Frame.Instruction.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction}
+     */
+    var instruction = this;
+
+    /**
+     * The opcode of this Guacamole instruction.
+     *
+     * @type {String}
+     */
+    this.opcode = opcode;
+
+    /**
+     * All arguments associated with this Guacamole instruction.
+     *
+     * @type {String[]}
+     */
+    this.args = args;
+
+    /**
+     * Returns the approximate number of characters which make up this
+     * instruction. This value is only approximate as it excludes the length
+     * prefixes and various delimiters used by the Guacamole protocol; only
+     * the content of the opcode and each argument is taken into account.
+     *
+     * @returns {Number}
+     *     The approximate size of this instruction, in characters.
+     */
+    this.getSize = function getSize() {
+
+        // Init with length of opcode
+        var size = instruction.opcode.length;
+
+        // Add length of all arguments
+        for (var i = 0; i &lt; instruction.args.length; i++)
+            size += instruction.args[i].length;
+
+        return size;
+
+    };
+
+};
+
+/**
+ * A read-only Guacamole.Tunnel implementation which streams instructions
+ * received through explicit calls to its receiveInstruction() function.
+ *
+ * @private
+ * @constructor
+ * @augments {Guacamole.Tunnel}
+ */
+Guacamole.SessionRecording._PlaybackTunnel = function _PlaybackTunnel() {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._PlaybackTunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var tunnel = this;
+
+    this.connect = function connect(data) {
+        // Do nothing
+    };
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.disconnect = function disconnect() {
+        // Do nothing
+    };
+
+    /**
+     * Invokes this tunnel's oninstruction handler, notifying users of this
+     * tunnel (such as a Guacamole.Client instance) that an instruction has
+     * been received. If the oninstruction handler has not been set, this
+     * function has no effect.
+     *
+     * @param {String} opcode
+     *     The opcode of the Guacamole instruction.
+     *
+     * @param {String[]} args
+     *     All arguments associated with this Guacamole instruction.
+     */
+    this.receiveInstruction = function receiveInstruction(opcode, args) {
+        if (tunnel.oninstruction)
+            tunnel.oninstruction(opcode, args);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Status.js.html b/doc/1.3.0/guacamole-common-js/Status.js.html
new file mode 100644
index 0000000..efc804a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Status.js.html
@@ -0,0 +1,379 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Status.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Status.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A Guacamole status. Each Guacamole status consists of a status code, defined
+ * by the protocol, and an optional human-readable message, usually only
+ * included for debugging convenience.
+ *
+ * @constructor
+ * @param {Number} code
+ *     The Guacamole status code, as defined by Guacamole.Status.Code.
+ *
+ * @param {String} [message]
+ *     An optional human-readable message.
+ */
+Guacamole.Status = function(code, message) {
+
+    /**
+     * Reference to this Guacamole.Status.
+     * @private
+     */
+    var guac_status = this;
+
+    /**
+     * The Guacamole status code.
+     * @see Guacamole.Status.Code
+     * @type {Number}
+     */
+    this.code = code;
+
+    /**
+     * An arbitrary human-readable message associated with this status, if any.
+     * The human-readable message is not required, and is generally provided
+     * for debugging purposes only. For user feedback, it is better to translate
+     * the Guacamole status code into a message.
+     * 
+     * @type {String}
+     */
+    this.message = message;
+
+    /**
+     * Returns whether this status represents an error.
+     * @returns {Boolean} true if this status represents an error, false
+     *                    otherwise.
+     */
+    this.isError = function() {
+        return guac_status.code &lt; 0 || guac_status.code > 0x00FF;
+    };
+
+};
+
+/**
+ * Enumeration of all Guacamole status codes.
+ */
+Guacamole.Status.Code = {
+
+    /**
+     * The operation succeeded.
+     *
+     * @type {Number}
+     */
+    "SUCCESS": 0x0000,
+
+    /**
+     * The requested operation is unsupported.
+     *
+     * @type {Number}
+     */
+    "UNSUPPORTED": 0x0100,
+
+    /**
+     * The operation could not be performed due to an internal failure.
+     *
+     * @type {Number}
+     */
+    "SERVER_ERROR": 0x0200,
+
+    /**
+     * The operation could not be performed as the server is busy.
+     *
+     * @type {Number}
+     */
+    "SERVER_BUSY": 0x0201,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * responding.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_TIMEOUT": 0x0202,
+
+    /**
+     * The operation was unsuccessful due to an error or otherwise unexpected
+     * condition of the upstream server.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_ERROR": 0x0203,
+
+    /**
+     * The operation could not be performed as the requested resource does not
+     * exist.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_NOT_FOUND": 0x0204,
+
+    /**
+     * The operation could not be performed as the requested resource is
+     * already in use.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CONFLICT": 0x0205,
+
+    /**
+     * The operation could not be performed as the requested resource is now
+     * closed.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CLOSED": 0x0206,
+
+    /**
+     * The operation could not be performed because the upstream server does
+     * not appear to exist.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_NOT_FOUND": 0x0207,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * available to service the request.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_UNAVAILABLE": 0x0208,
+
+    /**
+     * The session within the upstream server has ended because it conflicted
+     * with another session.
+     *
+     * @type {Number}
+     */
+    "SESSION_CONFLICT": 0x0209,
+
+    /**
+     * The session within the upstream server has ended because it appeared to
+     * be inactive.
+     *
+     * @type {Number}
+     */
+    "SESSION_TIMEOUT": 0x020A,
+
+    /**
+     * The session within the upstream server has been forcibly terminated.
+     *
+     * @type {Number}
+     */
+    "SESSION_CLOSED": 0x020B,
+
+    /**
+     * The operation could not be performed because bad parameters were given.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_REQUEST": 0x0300,
+
+    /**
+     * Permission was denied to perform the operation, as the user is not yet
+     * authorized (not yet logged in, for example).
+     *
+     * @type {Number}
+     */
+    "CLIENT_UNAUTHORIZED": 0x0301,
+
+    /**
+     * Permission was denied to perform the operation, and this permission will
+     * not be granted even if the user is authorized.
+     *
+     * @type {Number}
+     */
+    "CLIENT_FORBIDDEN": 0x0303,
+
+    /**
+     * The client took too long to respond.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TIMEOUT": 0x0308,
+
+    /**
+     * The client sent too much data.
+     *
+     * @type {Number}
+     */
+    "CLIENT_OVERRUN": 0x030D,
+
+    /**
+     * The client sent data of an unsupported or unexpected type.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_TYPE": 0x030F,
+
+    /**
+     * The operation failed because the current client is already using too
+     * many resources.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TOO_MANY": 0x031D
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given HTTP status code.
+ *
+ * @param {Number} status
+ *     The HTTP status code to translate into a Guacamole protocol status
+ *     code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given HTTP status code.
+ */
+Guacamole.Status.Code.fromHTTPCode = function fromHTTPCode(status) {
+
+    // Translate status codes with known equivalents
+    switch (status) {
+
+        // HTTP 400 - Bad request
+        case 400:
+            return Guacamole.Status.Code.CLIENT_BAD_REQUEST;
+
+        // HTTP 403 - Forbidden
+        case 403:
+            return Guacamole.Status.Code.CLIENT_FORBIDDEN;
+
+        // HTTP 404 - Resource not found
+        case 404:
+            return Guacamole.Status.Code.RESOURCE_NOT_FOUND;
+
+        // HTTP 429 - Too many requests
+        case 429:
+            return Guacamole.Status.Code.CLIENT_TOO_MANY;
+
+        // HTTP 503 - Server unavailable
+        case 503:
+            return Guacamole.Status.Code.SERVER_BUSY;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given WebSocket status code.
+ *
+ * @param {Number} code
+ *     The WebSocket status code to translate into a Guacamole protocol
+ *     status code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given WebSocket status code.
+ */
+Guacamole.Status.Code.fromWebSocketCode = function fromWebSocketCode(code) {
+
+    // Translate status codes with known equivalents
+    switch (code) {
+
+        // Successful disconnect (no error)
+        case 1000: // Normal Closure
+            return Guacamole.Status.Code.SUCCESS;
+
+        // Codes which indicate the server is not reachable
+        case 1006: // Abnormal Closure (also signalled by JavaScript when the connection cannot be opened in the first place)
+        case 1015: // TLS Handshake
+            return Guacamole.Status.Code.UPSTREAM_NOT_FOUND;
+
+        // Codes which indicate the server is reachable but busy/unavailable
+        case 1001: // Going Away
+        case 1012: // Service Restart
+        case 1013: // Try Again Later
+        case 1014: // Bad Gateway
+            return Guacamole.Status.Code.UPSTREAM_UNAVAILABLE;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/StringReader.js.html b/doc/1.3.0/guacamole-common-js/StringReader.js.html
new file mode 100644
index 0000000..e33a0ca
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/StringReader.js.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly text data. Note that this object will overwrite any installed event
+ * handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.StringReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferReader.
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var array_reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The number of bytes remaining for the current codepoint.
+     *
+     * @private
+     * @type {Number}
+     */
+    var bytes_remaining = 0;
+
+    /**
+     * The current codepoint value, as calculated from bytes read so far.
+     *
+     * @private
+     * @type {Number}
+     */
+    var codepoint = 0;
+
+    /**
+     * Decodes the given UTF-8 data into a Unicode string. The data may end in
+     * the middle of a multibyte character.
+     * 
+     * @private
+     * @param {ArrayBuffer} buffer Arbitrary UTF-8 data.
+     * @return {String} A decoded Unicode string.
+     */
+    function __decode_utf8(buffer) {
+
+        var text = "";
+
+        var bytes = new Uint8Array(buffer);
+        for (var i=0; i&lt;bytes.length; i++) {
+
+            // Get current byte
+            var value = bytes[i];
+
+            // Start new codepoint if nothing yet read
+            if (bytes_remaining === 0) {
+
+                // 1 byte (0xxxxxxx)
+                if ((value | 0x7F) === 0x7F)
+                    text += String.fromCharCode(value);
+
+                // 2 byte (110xxxxx)
+                else if ((value | 0x1F) === 0xDF) {
+                    codepoint = value &amp; 0x1F;
+                    bytes_remaining = 1;
+                }
+
+                // 3 byte (1110xxxx)
+                else if ((value | 0x0F )=== 0xEF) {
+                    codepoint = value &amp; 0x0F;
+                    bytes_remaining = 2;
+                }
+
+                // 4 byte (11110xxx)
+                else if ((value | 0x07) === 0xF7) {
+                    codepoint = value &amp; 0x07;
+                    bytes_remaining = 3;
+                }
+
+                // Invalid byte
+                else
+                    text += "\uFFFD";
+
+            }
+
+            // Continue existing codepoint (10xxxxxx)
+            else if ((value | 0x3F) === 0xBF) {
+
+                codepoint = (codepoint &lt;&lt; 6) | (value &amp; 0x3F);
+                bytes_remaining--;
+
+                // Write codepoint if finished
+                if (bytes_remaining === 0)
+                    text += String.fromCharCode(codepoint);
+
+            }
+
+            // Invalid byte
+            else {
+                bytes_remaining = 0;
+                text += "\uFFFD";
+            }
+
+        }
+
+        return text;
+
+    }
+
+    // Receive blobs as strings
+    array_reader.ondata = function(buffer) {
+
+        // Decode UTF-8
+        var text = __decode_utf8(buffer);
+
+        // Call handler, if present
+        if (guac_reader.ontext)
+            guac_reader.ontext(text);
+
+    };
+
+    // Simply call onend when end received
+    array_reader.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of text data received.
+     * 
+     * @event
+     * @param {String} text The data packet received.
+     */
+    this.ontext = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/StringWriter.js.html b/doc/1.3.0/guacamole-common-js/StringWriter.js.html
new file mode 100644
index 0000000..3b2eb45
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/StringWriter.js.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with text
+ * data.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.StringWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter.
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var array_writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * Internal buffer for UTF-8 output.
+     * @private
+     */
+    var buffer = new Uint8Array(8192);
+
+    /**
+     * The number of bytes currently in the buffer.
+     * @private
+     */
+    var length = 0;
+
+    // Simply call onack for acknowledgements
+    array_writer.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Expands the size of the underlying buffer by the given number of bytes,
+     * updating the length appropriately.
+     * 
+     * @private
+     * @param {Number} bytes The number of bytes to add to the underlying
+     *                       buffer.
+     */
+    function __expand(bytes) {
+
+        // Resize buffer if more space needed
+        if (length+bytes >= buffer.length) {
+            var new_buffer = new Uint8Array((length+bytes)*2);
+            new_buffer.set(buffer);
+            buffer = new_buffer;
+        }
+
+        length += bytes;
+
+    }
+
+    /**
+     * Appends a single Unicode character to the current buffer, resizing the
+     * buffer if necessary. The character will be encoded as UTF-8.
+     * 
+     * @private
+     * @param {Number} codepoint The codepoint of the Unicode character to
+     *                           append.
+     */
+    function __append_utf8(codepoint) {
+
+        var mask;
+        var bytes;
+
+        // 1 byte
+        if (codepoint &lt;= 0x7F) {
+            mask = 0x00;
+            bytes = 1;
+        }
+
+        // 2 byte
+        else if (codepoint &lt;= 0x7FF) {
+            mask = 0xC0;
+            bytes = 2;
+        }
+
+        // 3 byte
+        else if (codepoint &lt;= 0xFFFF) {
+            mask = 0xE0;
+            bytes = 3;
+        }
+
+        // 4 byte
+        else if (codepoint &lt;= 0x1FFFFF) {
+            mask = 0xF0;
+            bytes = 4;
+        }
+
+        // If invalid codepoint, append replacement character
+        else {
+            __append_utf8(0xFFFD);
+            return;
+        }
+
+        // Offset buffer by size
+        __expand(bytes);
+        var offset = length - 1;
+
+        // Add trailing bytes, if any
+        for (var i=1; i&lt;bytes; i++) {
+            buffer[offset--] = 0x80 | (codepoint &amp; 0x3F);
+            codepoint >>= 6;
+        }
+
+        // Set initial byte
+        buffer[offset] = mask | codepoint;
+
+    }
+
+    /**
+     * Encodes the given string as UTF-8, returning an ArrayBuffer containing
+     * the resulting bytes.
+     * 
+     * @private
+     * @param {String} text The string to encode as UTF-8.
+     * @return {Uint8Array} The encoded UTF-8 data.
+     */
+    function __encode_utf8(text) {
+
+        // Fill buffer with UTF-8
+        for (var i=0; i&lt;text.length; i++) {
+            var codepoint = text.charCodeAt(i);
+            __append_utf8(codepoint);
+        }
+
+        // Flush buffer
+        if (length > 0) {
+            var out_buffer = buffer.subarray(0, length);
+            length = 0;
+            return out_buffer;
+        }
+
+    }
+
+    /**
+     * Sends the given text.
+     * 
+     * @param {String} text The text to send.
+     */
+    this.sendText = function(text) {
+        if (text.length)
+            array_writer.sendData(__encode_utf8(text));
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        array_writer.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Tunnel.js.html b/doc/1.3.0/guacamole-common-js/Tunnel.js.html
new file mode 100644
index 0000000..10d7474
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Tunnel.js.html
@@ -0,0 +1,1475 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Tunnel.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Tunnel.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Core object providing abstract communication for Guacamole. This object
+ * is a null implementation whose functions do nothing. Guacamole applications
+ * should use {@link Guacamole.HTTPTunnel} instead, or implement their own tunnel based
+ * on this one.
+ * 
+ * @constructor
+ * @see Guacamole.HTTPTunnel
+ */
+Guacamole.Tunnel = function() {
+
+    /**
+     * Connect to the tunnel with the given optional data. This data is
+     * typically used for authentication. The format of data accepted is
+     * up to the tunnel implementation.
+     * 
+     * @param {String} data The data to send to the tunnel when connecting.
+     */
+    this.connect = function(data) {};
+    
+    /**
+     * Disconnect from the tunnel.
+     */
+    this.disconnect = function() {};
+    
+    /**
+     * Send the given message through the tunnel to the service on the other
+     * side. All messages are guaranteed to be received in the order sent.
+     * 
+     * @param {...*} elements
+     *     The elements of the message to send to the service on the other side
+     *     of the tunnel.
+     */
+    this.sendMessage = function(elements) {};
+
+    /**
+     * Changes the stored numeric state of this tunnel, firing the onstatechange
+     * event if the new state is different and a handler has been defined.
+     *
+     * @private
+     * @param {Number} state
+     *     The new state of this tunnel.
+     */
+    this.setState = function(state) {
+
+        // Notify only if state changes
+        if (state !== this.state) {
+            this.state = state;
+            if (this.onstatechange)
+                this.onstatechange(state);
+        }
+
+    };
+
+    /**
+     * Changes the stored UUID that uniquely identifies this tunnel, firing the
+     * onuuid event if a handler has been defined.
+     *
+     * @private
+     * @param {String} uuid
+     *     The new state of this tunnel.
+     */
+    this.setUUID = function setUUID(uuid) {
+        this.uuid = uuid;
+        if (this.onuuid)
+            this.onuuid(uuid);
+    };
+
+    /**
+     * Returns whether this tunnel is currently connected.
+     *
+     * @returns {Boolean}
+     *     true if this tunnel is currently connected, false otherwise.
+     */
+    this.isConnected = function isConnected() {
+        return this.state === Guacamole.Tunnel.State.OPEN
+            || this.state === Guacamole.Tunnel.State.UNSTABLE;
+    };
+
+    /**
+     * The current state of this tunnel.
+     * 
+     * @type {Number}
+     */
+    this.state = Guacamole.Tunnel.State.CONNECTING;
+
+    /**
+     * The maximum amount of time to wait for data to be received, in
+     * milliseconds. If data is not received within this amount of time,
+     * the tunnel is closed with an error. The default value is 15000.
+     *
+     * @type {Number}
+     */
+    this.receiveTimeout = 15000;
+
+    /**
+     * The amount of time to wait for data to be received before considering
+     * the connection to be unstable, in milliseconds. If data is not received
+     * within this amount of time, the tunnel status is updated to warn that
+     * the connection appears unresponsive and may close. The default value is
+     * 1500.
+     * 
+     * @type {Number}
+     */
+    this.unstableThreshold = 1500;
+
+    /**
+     * The UUID uniquely identifying this tunnel. If not yet known, this will
+     * be null.
+     *
+     * @type {String}
+     */
+    this.uuid = null;
+
+    /**
+     * Fired when the UUID that uniquely identifies this tunnel is known.
+     *
+     * @event
+     * @param {String}
+     *     The UUID uniquely identifying this tunnel.
+     */
+    this.onuuid = null;
+
+    /**
+     * Fired whenever an error is encountered by the tunnel.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired whenever the state of the tunnel changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+
+/**
+ * The Guacamole protocol instruction opcode reserved for arbitrary internal
+ * use by tunnel implementations. The value of this opcode is guaranteed to be
+ * the empty string (""). Tunnel implementations may use this opcode for any
+ * purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+ * response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+ * connection stability test pings/responses.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Tunnel.INTERNAL_DATA_OPCODE = '';
+
+/**
+ * All possible tunnel states.
+ */
+Guacamole.Tunnel.State = {
+
+    /**
+     * A connection is in pending. It is not yet known whether connection was
+     * successful.
+     * 
+     * @type {Number}
+     */
+    "CONNECTING": 0,
+
+    /**
+     * Connection was successful, and data is being received.
+     * 
+     * @type {Number}
+     */
+    "OPEN": 1,
+
+    /**
+     * The connection is closed. Connection may not have been successful, the
+     * tunnel may have been explicitly closed by either side, or an error may
+     * have occurred.
+     * 
+     * @type {Number}
+     */
+    "CLOSED": 2,
+
+    /**
+     * The connection is open, but communication through the tunnel appears to
+     * be disrupted, and the connection may close as a result.
+     *
+     * @type {Number}
+     */
+    "UNSTABLE" : 3
+
+};
+
+/**
+ * Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ *
+ * @param {String} tunnelURL
+ *     The URL of the HTTP tunneling service.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this HTTP tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    var TUNNEL_CONNECT = tunnelURL + "?connect";
+    var TUNNEL_READ    = tunnelURL + "?read:";
+    var TUNNEL_WRITE   = tunnelURL + "?write:";
+
+    var POLLING_ENABLED     = 1;
+    var POLLING_DISABLED    = 0;
+
+    // Default to polling - will be turned off automatically if not needed
+    var pollingMode = POLLING_ENABLED;
+
+    var sendingMessages = false;
+    var outputMessageBuffer = "";
+
+    // If requests are expected to be cross-domain, the cookie that the HTTP
+    // tunnel depends on will only be sent if withCredentials is true
+    var withCredentials = !!crossDomain;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror) {
+
+            // Ignore RESOURCE_NOT_FOUND if we've already connected, as that
+            // only signals end-of-stream for the HTTP tunnel.
+            if (tunnel.state === Guacamole.Tunnel.State.CONNECTING
+                    || status.code !== Guacamole.Status.Code.RESOURCE_NOT_FOUND)
+                tunnel.onerror(status);
+
+        }
+
+        // Reset output message buffer
+        sendingMessages = false;
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    }
+
+
+    this.sendMessage = function() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        // Add message to buffer
+        outputMessageBuffer += message;
+
+        // Send if not currently sending
+        if (!sendingMessages)
+            sendPendingMessages();
+
+    };
+
+    function sendPendingMessages() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        if (outputMessageBuffer.length > 0) {
+
+            sendingMessages = true;
+
+            var message_xmlhttprequest = new XMLHttpRequest();
+            message_xmlhttprequest.open("POST", TUNNEL_WRITE + tunnel.uuid);
+            message_xmlhttprequest.withCredentials = withCredentials;
+            addExtraHeaders(message_xmlhttprequest, extraHeaders);
+            message_xmlhttprequest.setRequestHeader("Content-type", "application/octet-stream");
+
+            // Once response received, send next queued event.
+            message_xmlhttprequest.onreadystatechange = function() {
+                if (message_xmlhttprequest.readyState === 4) {
+
+                    reset_timeout();
+
+                    // If an error occurs during send, handle it
+                    if (message_xmlhttprequest.status !== 200)
+                        handleHTTPTunnelError(message_xmlhttprequest);
+
+                    // Otherwise, continue the send loop
+                    else
+                        sendPendingMessages();
+
+                }
+            };
+
+            message_xmlhttprequest.send(outputMessageBuffer);
+            outputMessageBuffer = ""; // Clear buffer
+
+        }
+        else
+            sendingMessages = false;
+
+    }
+
+    function handleHTTPTunnelError(xmlhttprequest) {
+
+        // Pull status code directly from headers provided by Guacamole
+        var code = parseInt(xmlhttprequest.getResponseHeader("Guacamole-Status-Code"));
+        if (code) {
+            var message = xmlhttprequest.getResponseHeader("Guacamole-Error-Message");
+            close_tunnel(new Guacamole.Status(code, message));
+        }
+
+        // Failing that, derive a Guacamole status code from the HTTP status
+        // code provided by the browser
+        else if (xmlhttprequest.status)
+            close_tunnel(new Guacamole.Status(
+                Guacamole.Status.Code.fromHTTPCode(xmlhttprequest.status),
+                    xmlhttprequest.statusText));
+
+        // Otherwise, assume server is unreachable
+        else
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+    }
+
+    function handleResponse(xmlhttprequest) {
+
+        var interval = null;
+        var nextRequest = null;
+
+        var dataUpdateEvents = 0;
+
+        // The location of the last element's terminator
+        var elementEnd = -1;
+
+        // Where to start the next length search or the next element
+        var startIndex = 0;
+
+        // Parsed elements
+        var elements = new Array();
+
+        function parseResponse() {
+
+            // Do not handle responses if not connected
+            if (!tunnel.isConnected()) {
+                
+                // Clean up interval if polling
+                if (interval !== null)
+                    clearInterval(interval);
+                
+                return;
+            }
+
+            // Do not parse response yet if not ready
+            if (xmlhttprequest.readyState &lt; 2) return;
+
+            // Attempt to read status
+            var status;
+            try { status = xmlhttprequest.status; }
+
+            // If status could not be read, assume successful.
+            catch (e) { status = 200; }
+
+            // Start next request as soon as possible IF request was successful
+            if (!nextRequest &amp;&amp; status === 200)
+                nextRequest = makeRequest();
+
+            // Parse stream when data is received and when complete.
+            if (xmlhttprequest.readyState === 3 ||
+                xmlhttprequest.readyState === 4) {
+
+                reset_timeout();
+
+                // Also poll every 30ms (some browsers don't repeatedly call onreadystatechange for new data)
+                if (pollingMode === POLLING_ENABLED) {
+                    if (xmlhttprequest.readyState === 3 &amp;&amp; !interval)
+                        interval = setInterval(parseResponse, 30);
+                    else if (xmlhttprequest.readyState === 4 &amp;&amp; interval)
+                        clearInterval(interval);
+                }
+
+                // If canceled, stop transfer
+                if (xmlhttprequest.status === 0) {
+                    tunnel.disconnect();
+                    return;
+                }
+
+                // Halt on error during request
+                else if (xmlhttprequest.status !== 200) {
+                    handleHTTPTunnelError(xmlhttprequest);
+                    return;
+                }
+
+                // Attempt to read in-progress data
+                var current;
+                try { current = xmlhttprequest.responseText; }
+
+                // Do not attempt to parse if data could not be read
+                catch (e) { return; }
+
+                // While search is within currently received data
+                while (elementEnd &lt; current.length) {
+
+                    // If we are waiting for element data
+                    if (elementEnd >= startIndex) {
+
+                        // We now have enough data for the element. Parse.
+                        var element = current.substring(startIndex, elementEnd);
+                        var terminator = current.substring(elementEnd, elementEnd+1);
+
+                        // Add element to array
+                        elements.push(element);
+
+                        // If last element, handle instruction
+                        if (terminator === ";") {
+
+                            // Get opcode
+                            var opcode = elements.shift();
+
+                            // Call instruction handler.
+                            if (tunnel.oninstruction)
+                                tunnel.oninstruction(opcode, elements);
+
+                            // Clear elements
+                            elements.length = 0;
+
+                        }
+
+                        // Start searching for length at character after
+                        // element terminator
+                        startIndex = elementEnd + 1;
+
+                    }
+
+                    // Search for end of length
+                    var lengthEnd = current.indexOf(".", startIndex);
+                    if (lengthEnd !== -1) {
+
+                        // Parse length
+                        var length = parseInt(current.substring(elementEnd+1, lengthEnd));
+
+                        // If we're done parsing, handle the next response.
+                        if (length === 0) {
+
+                            // Clean up interval if polling
+                            if (interval)
+                                clearInterval(interval);
+                           
+                            // Clean up object
+                            xmlhttprequest.onreadystatechange = null;
+                            xmlhttprequest.abort();
+
+                            // Start handling next request
+                            if (nextRequest)
+                                handleResponse(nextRequest);
+
+                            // Done parsing
+                            break;
+
+                        }
+
+                        // Calculate start of element
+                        startIndex = lengthEnd + 1;
+
+                        // Calculate location of element terminator
+                        elementEnd = startIndex + length;
+
+                    }
+                    
+                    // If no period yet, continue search when more data
+                    // is received
+                    else {
+                        startIndex = current.length;
+                        break;
+                    }
+
+                } // end parse loop
+
+            }
+
+        }
+
+        // If response polling enabled, attempt to detect if still
+        // necessary (via wrapping parseResponse())
+        if (pollingMode === POLLING_ENABLED) {
+            xmlhttprequest.onreadystatechange = function() {
+
+                // If we receive two or more readyState==3 events,
+                // there is no need to poll.
+                if (xmlhttprequest.readyState === 3) {
+                    dataUpdateEvents++;
+                    if (dataUpdateEvents >= 2) {
+                        pollingMode = POLLING_DISABLED;
+                        xmlhttprequest.onreadystatechange = parseResponse;
+                    }
+                }
+
+                parseResponse();
+            };
+        }
+
+        // Otherwise, just parse
+        else
+            xmlhttprequest.onreadystatechange = parseResponse;
+
+        parseResponse();
+
+    }
+
+    /**
+     * Arbitrary integer, unique for each tunnel read request.
+     * @private
+     */
+    var request_id = 0;
+
+    function makeRequest() {
+
+        // Make request, increment request ID
+        var xmlhttprequest = new XMLHttpRequest();
+        xmlhttprequest.open("GET", TUNNEL_READ + tunnel.uuid + ":" + (request_id++));
+        xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(xmlhttprequest, extraHeaders);
+        xmlhttprequest.send(null);
+
+        return xmlhttprequest;
+
+    }
+
+    this.connect = function(data) {
+
+        // Start waiting for connect
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start tunnel and connect
+        var connect_xmlhttprequest = new XMLHttpRequest();
+        connect_xmlhttprequest.onreadystatechange = function() {
+
+            if (connect_xmlhttprequest.readyState !== 4)
+                return;
+
+            // If failure, throw error
+            if (connect_xmlhttprequest.status !== 200) {
+                handleHTTPTunnelError(connect_xmlhttprequest);
+                return;
+            }
+
+            reset_timeout();
+
+            // Get UUID from response
+            tunnel.setUUID(connect_xmlhttprequest.responseText);
+
+            // Mark as open
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage("nop");
+            }, PING_FREQUENCY);
+
+            // Start reading data
+            handleResponse(makeRequest());
+
+        };
+
+        connect_xmlhttprequest.open("POST", TUNNEL_CONNECT, true);
+        connect_xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(connect_xmlhttprequest, extraHeaders);
+        connect_xmlhttprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
+        connect_xmlhttprequest.send(data);
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.HTTPTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} tunnelURL The URL of the WebSocket tunneling service.
+ */
+Guacamole.WebSocketTunnel = function(tunnelURL) {
+
+    /**
+     * Reference to this WebSocket tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The WebSocket used by this tunnel.
+     * @private
+     */
+    var socket = null;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The WebSocket protocol corresponding to the protocol used for the current
+     * location.
+     * @private
+     */
+    var ws_protocol = {
+        "http:":  "ws:",
+        "https:": "wss:"
+    };
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    // Transform current URL to WebSocket URL
+
+    // If not already a websocket URL
+    if (   tunnelURL.substring(0, 3) !== "ws:"
+        &amp;&amp; tunnelURL.substring(0, 4) !== "wss:") {
+
+        var protocol = ws_protocol[window.location.protocol];
+
+        // If absolute URL, convert to absolute WS URL
+        if (tunnelURL.substring(0, 1) === "/")
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + tunnelURL;
+
+        // Otherwise, construct absolute from relative URL
+        else {
+
+            // Get path from pathname
+            var slash = window.location.pathname.lastIndexOf("/");
+            var path  = window.location.pathname.substring(0, slash + 1);
+
+            // Construct absolute URL
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + path
+                + tunnelURL;
+
+        }
+
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror)
+            tunnel.onerror(status);
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+        socket.close();
+
+    }
+
+    this.sendMessage = function(elements) {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        socket.send(message);
+
+    };
+
+    this.connect = function(data) {
+
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Connect socket
+        socket = new WebSocket(tunnelURL + "?" + data, "guacamole");
+
+        socket.onopen = function(event) {
+            reset_timeout();
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage(Guacamole.Tunnel.INTERNAL_DATA_OPCODE,
+                    "ping", new Date().getTime());
+            }, PING_FREQUENCY);
+
+        };
+
+        socket.onclose = function(event) {
+
+            // Pull status code directly from closure reason provided by Guacamole
+            if (event.reason)
+                close_tunnel(new Guacamole.Status(parseInt(event.reason), event.reason));
+
+            // Failing that, derive a Guacamole status code from the WebSocket
+            // status code provided by the browser
+            else if (event.code)
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.fromWebSocketCode(event.code)));
+
+            // Otherwise, assume server is unreachable
+            else
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+        };
+        
+        socket.onmessage = function(event) {
+
+            reset_timeout();
+
+            var message = event.data;
+            var startIndex = 0;
+            var elementEnd;
+
+            var elements = [];
+
+            do {
+
+                // Search for end of length
+                var lengthEnd = message.indexOf(".", startIndex);
+                if (lengthEnd !== -1) {
+
+                    // Parse length
+                    var length = parseInt(message.substring(elementEnd+1, lengthEnd));
+
+                    // Calculate start of element
+                    startIndex = lengthEnd + 1;
+
+                    // Calculate location of element terminator
+                    elementEnd = startIndex + length;
+
+                }
+                
+                // If no period, incomplete instruction.
+                else
+                    close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SERVER_ERROR, "Incomplete instruction."));
+
+                // We now have enough data for the element. Parse.
+                var element = message.substring(startIndex, elementEnd);
+                var terminator = message.substring(elementEnd, elementEnd+1);
+
+                // Add element to array
+                elements.push(element);
+
+                // If last element, handle instruction
+                if (terminator === ";") {
+
+                    // Get opcode
+                    var opcode = elements.shift();
+
+                    // Update state and UUID when first instruction received
+                    if (tunnel.uuid === null) {
+
+                        // Associate tunnel UUID if received
+                        if (opcode === Guacamole.Tunnel.INTERNAL_DATA_OPCODE)
+                            tunnel.setUUID(elements[0]);
+
+                        // Tunnel is now open and UUID is available
+                        tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                    }
+
+                    // Call instruction handler.
+                    if (opcode !== Guacamole.Tunnel.INTERNAL_DATA_OPCODE &amp;&amp; tunnel.oninstruction)
+                        tunnel.oninstruction(opcode, elements);
+
+                    // Clear elements
+                    elements.length = 0;
+
+                }
+
+                // Start searching for length at character after
+                // element terminator
+                startIndex = elementEnd + 1;
+
+            } while (startIndex &lt; message.length);
+
+        };
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.WebSocketTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which cycles between all specified tunnels until
+ * no tunnels are left. Another tunnel is used if an error occurs but
+ * no instructions have been received. If an instruction has been
+ * received, or no tunnels remain, the error is passed directly out
+ * through the onerror handler (if defined).
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {...*} tunnelChain
+ *     The tunnels to use, in order of priority.
+ */
+Guacamole.ChainedTunnel = function(tunnelChain) {
+
+    /**
+     * Reference to this chained tunnel.
+     * @private
+     */
+    var chained_tunnel = this;
+
+    /**
+     * Data passed in via connect(), to be used for
+     * wrapped calls to other tunnels' connect() functions.
+     * @private
+     */
+    var connect_data;
+
+    /**
+     * Array of all tunnels passed to this ChainedTunnel through the
+     * constructor arguments.
+     * @private
+     */
+    var tunnels = [];
+
+    /**
+     * The tunnel committed via commit_tunnel(), if any, or null if no tunnel
+     * has yet been committed.
+     *
+     * @private
+     * @type {Guacamole.Tunnel}
+     */
+    var committedTunnel = null;
+
+    // Load all tunnels into array
+    for (var i=0; i&lt;arguments.length; i++)
+        tunnels.push(arguments[i]);
+
+    /**
+     * Sets the current tunnel.
+     * 
+     * @private
+     * @param {Guacamole.Tunnel} tunnel The tunnel to set as the current tunnel.
+     */
+    function attach(tunnel) {
+
+        // Set own functions to tunnel's functions
+        chained_tunnel.disconnect  = tunnel.disconnect;
+        chained_tunnel.sendMessage = tunnel.sendMessage;
+
+        /**
+         * Fails the currently-attached tunnel, attaching a new tunnel if
+         * possible.
+         *
+         * @private
+         * @param {Guacamole.Status} [status]
+         *     An object representing the failure that occured in the
+         *     currently-attached tunnel, if known.
+         *
+         * @return {Guacamole.Tunnel}
+         *     The next tunnel, or null if there are no more tunnels to try or
+         *     if no more tunnels should be tried.
+         */
+        var failTunnel = function failTunnel(status) {
+
+            // Do not attempt to continue using next tunnel on server timeout
+            if (status &amp;&amp; status.code === Guacamole.Status.Code.UPSTREAM_TIMEOUT) {
+                tunnels = [];
+                return null;
+            }
+
+            // Get next tunnel
+            var next_tunnel = tunnels.shift();
+
+            // If there IS a next tunnel, try using it.
+            if (next_tunnel) {
+                tunnel.onerror = null;
+                tunnel.oninstruction = null;
+                tunnel.onstatechange = null;
+                attach(next_tunnel);
+            }
+
+            return next_tunnel;
+
+        };
+
+        /**
+         * Use the current tunnel from this point forward. Do not try any more
+         * tunnels, even if the current tunnel fails.
+         * 
+         * @private
+         */
+        function commit_tunnel() {
+
+            tunnel.onstatechange = chained_tunnel.onstatechange;
+            tunnel.oninstruction = chained_tunnel.oninstruction;
+            tunnel.onerror = chained_tunnel.onerror;
+            tunnel.onuuid = chained_tunnel.onuuid;
+
+            // Assign UUID if already known
+            if (tunnel.uuid)
+                chained_tunnel.setUUID(tunnel.uuid);
+
+            committedTunnel = tunnel;
+
+        }
+
+        // Wrap own onstatechange within current tunnel
+        tunnel.onstatechange = function(state) {
+
+            switch (state) {
+
+                // If open, use this tunnel from this point forward.
+                case Guacamole.Tunnel.State.OPEN:
+                    commit_tunnel();
+                    if (chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+
+                // If closed, mark failure, attempt next tunnel
+                case Guacamole.Tunnel.State.CLOSED:
+                    if (!failTunnel() &amp;&amp; chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+                
+            }
+
+        };
+
+        // Wrap own oninstruction within current tunnel
+        tunnel.oninstruction = function(opcode, elements) {
+
+            // Accept current tunnel
+            commit_tunnel();
+
+            // Invoke handler
+            if (chained_tunnel.oninstruction)
+                chained_tunnel.oninstruction(opcode, elements);
+
+        };
+
+        // Attach next tunnel on error
+        tunnel.onerror = function(status) {
+
+            // Mark failure, attempt next tunnel
+            if (!failTunnel(status) &amp;&amp; chained_tunnel.onerror)
+                chained_tunnel.onerror(status);
+
+        };
+
+        // Attempt connection
+        tunnel.connect(connect_data);
+        
+    }
+
+    this.connect = function(data) {
+       
+        // Remember connect data
+        connect_data = data;
+
+        // Get committed tunnel if exists or the first tunnel on the list
+        var next_tunnel = committedTunnel ? committedTunnel : tunnels.shift();
+
+        // Attach first tunnel
+        if (next_tunnel)
+            attach(next_tunnel);
+
+        // If there IS no first tunnel, error
+        else if (chained_tunnel.onerror)
+            chained_tunnel.onerror(Guacamole.Status.Code.SERVER_ERROR, "No tunnels to try.");
+
+    };
+    
+};
+
+Guacamole.ChainedTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+ * received via HTTP. Instructions within the file are parsed and handled as
+ * quickly as possible, while the file is being downloaded.
+ *
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} url
+ *     The URL of a Guacamole protocol dump.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this Guacamole.StaticHTTPTunnel.
+     *
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The current, in-progress HTTP request. If no request is currently in
+     * progress, this will be null.
+     *
+     * @private
+     * @type {XMLHttpRequest}
+     */
+    var xhr = null;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.connect = function connect(data) {
+
+        // Ensure any existing connection is killed
+        tunnel.disconnect();
+
+        // Connection is now starting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start a new connection
+        xhr = new XMLHttpRequest();
+        xhr.open('GET', url);
+        xhr.withCredentials = !!crossDomain;
+        addExtraHeaders(xhr, extraHeaders);
+        xhr.responseType = 'text';
+        xhr.send(null);
+
+        var offset = 0;
+
+        // Create Guacamole protocol parser specifically for this connection
+        var parser = new Guacamole.Parser();
+
+        // Invoke tunnel's oninstruction handler for each parsed instruction
+        parser.oninstruction = function instructionReceived(opcode, args) {
+            if (tunnel.oninstruction)
+                tunnel.oninstruction(opcode, args);
+        };
+
+        // Continuously parse received data
+        xhr.onreadystatechange = function readyStateChanged() {
+
+            // Parse while data is being received
+            if (xhr.readyState === 3 || xhr.readyState === 4) {
+
+                // Connection is open
+                tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                var buffer = xhr.responseText;
+                var length = buffer.length;
+
+                // Parse only the portion of data which is newly received
+                if (offset &lt; length) {
+                    parser.receive(buffer.substring(offset));
+                    offset = length;
+                }
+
+            }
+
+            // Clean up and close when done
+            if (xhr.readyState === 4)
+                tunnel.disconnect();
+
+        };
+
+        // Reset state and close upon error
+        xhr.onerror = function httpError() {
+
+            // Fail if file could not be downloaded via HTTP
+            if (tunnel.onerror)
+                tunnel.onerror(new Guacamole.Status(
+                    Guacamole.Status.Code.fromHTTPCode(xhr.status), xhr.statusText));
+
+            tunnel.disconnect();
+        };
+
+    };
+
+    this.disconnect = function disconnect() {
+
+        // Abort and dispose of XHR if a request is in progress
+        if (xhr) {
+            xhr.abort();
+            xhr = null;
+        }
+
+        // Connection is now closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    };
+
+};
+
+Guacamole.StaticHTTPTunnel.prototype = new Guacamole.Tunnel();
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/Version.js.html b/doc/1.3.0/guacamole-common-js/Version.js.html
new file mode 100644
index 0000000..0913484
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/Version.js.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Version.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Version.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The unique ID of this version of the Guacamole JavaScript API. This ID will
+ * be the version string of the guacamole-common-js Maven project, and can be
+ * used in downstream applications as a sanity check that the proper version
+ * of the APIs is being used (in case an older version is cached, for example).
+ *
+ * @type {String}
+ */
+Guacamole.API_VERSION = "1.3.0";
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/VideoPlayer.js.html b/doc/1.3.0/guacamole-common-js/VideoPlayer.js.html
new file mode 100644
index 0000000..08f301f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/VideoPlayer.js.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: VideoPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: VideoPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract video player which accepts, queues and plays back arbitrary video
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream and rendering the received data to
+ * the provided Guacamole.Display.VisibleLayer. Data received along the
+ * provided stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.VideoPlayer = function VideoPlayer() {
+
+    /**
+     * Notifies this Guacamole.VideoPlayer that all video up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued video data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.VideoPlayer, and thus will be properly handled
+ * by Guacamole.VideoPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.VideoPlayer, false otherwise.
+ */
+Guacamole.VideoPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return false;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list.
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.VideoPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return [];
+
+};
+
+/**
+ * Returns an instance of Guacamole.VideoPlayer providing support for the given
+ * video format. If support for the given video format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read video data from.
+ *
+ * @param {Guacamole.Display.VisibleLayer} layer
+ *     The destination layer in which this Guacamole.VideoPlayer should play
+ *     the received video data.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the video data in the provided stream.
+ *
+ * @return {Guacamole.VideoPlayer}
+ *     A Guacamole.VideoPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.VideoPlayer.getInstance = function getInstance(stream, layer, mimetype) {
+
+    // There are currently no built-in video players
+    return null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000..5d20d91
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000..3ed7be4
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="967" d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z" />
+<glyph unicode="$" d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z" />
+<glyph unicode="%" horiz-adv-x="1845" d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1536" d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z" />
+<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="(" horiz-adv-x="694" d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="694" d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z" />
+<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z" />
+<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="." horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z" />
+<glyph unicode="0" d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z" />
+<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z" />
+<glyph unicode="2" d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z " />
+<glyph unicode="3" d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z" />
+<glyph unicode="4" d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z" />
+<glyph unicode="5" d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z" />
+<glyph unicode="6" d="M72 621q0 434 183.5 646t549.5 212q125 0 196 -15v-247q-89 20 -176 20q-159 0 -259.5 -48t-150.5 -142t-59 -267h13q99 170 317 170q196 0 307 -123t111 -340q0 -234 -132 -370.5t-366 -136.5q-162 0 -282.5 75t-186 219t-65.5 347zM600 227q99 0 152 66.5t53 189.5 q0 107 -49.5 168.5t-149.5 61.5q-94 0 -160.5 -61t-66.5 -142q0 -119 62.5 -201t158.5 -82z" />
+<glyph unicode="7" d="M227 0l549 1200h-721v260h1049v-194l-553 -1266h-324z" />
+<glyph unicode="8" d="M586 1481q210 0 338.5 -95.5t128.5 -257.5q0 -112 -62 -199.5t-200 -156.5q164 -88 235.5 -183.5t71.5 -209.5q0 -180 -141 -289.5t-371 -109.5q-240 0 -377 102t-137 289q0 125 66.5 222t213.5 171q-125 79 -180 169t-55 197q0 157 130 254t339 97zM358 389 q0 -86 60 -134t164 -48q115 0 172 49.5t57 130.5q0 67 -56.5 125.5t-183.5 124.5q-213 -98 -213 -248zM584 1255q-79 0 -127.5 -40.5t-48.5 -108.5q0 -60 38.5 -107.5t139.5 -97.5q98 46 137 94t39 111q0 69 -50 109t-128 40z" />
+<glyph unicode="9" d="M1098 838q0 -432 -182 -645t-551 -213q-130 0 -197 14v248q84 -21 176 -21q155 0 255 45.5t153 143t61 268.5h-12q-58 -94 -134 -132t-190 -38q-191 0 -301 122.5t-110 340.5q0 235 133.5 371.5t363.5 136.5q162 0 283.5 -76t186.5 -220.5t65 -344.5zM569 1231 q-96 0 -150 -66t-54 -190q0 -106 49 -168t149 -62q94 0 161 61.5t67 141.5q0 119 -62.5 201t-159.5 82z" />
+<glyph unicode=":" horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode=";" horiz-adv-x="594" d="M444 238l15 -23q-52 -202 -176 -479h-220q65 266 101 502h280zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#x3c;" d="M1081 203l-993 438v143l993 496v-240l-684 -317l684 -281v-239z" />
+<glyph unicode="=" d="M88 805v219h993v-219h-993zM88 418v219h993v-219h-993z" />
+<glyph unicode="&#x3e;" d="M88 442l684 281l-684 317v240l993 -496v-143l-993 -438v239z" />
+<glyph unicode="?" horiz-adv-x="977" d="M276 485v74q0 96 41 167t150 151q105 75 138.5 122t33.5 105q0 65 -48 99t-134 34q-150 0 -342 -98l-109 219q223 125 473 125q206 0 327.5 -99t121.5 -264q0 -110 -50 -190t-190 -180q-96 -71 -121.5 -108t-25.5 -97v-60h-265zM244 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="@" horiz-adv-x="1837" d="M1735 752q0 -144 -46 -263.5t-130 -187.5t-195 -68q-74 0 -131 35.5t-82 93.5h-16q-108 -129 -275 -129q-177 0 -279 106.5t-102 291.5q0 211 134 340t350 129q86 0 189.5 -16.5t170.5 -39.5l-23 -489q0 -139 76 -139q64 0 102 93.5t38 244.5q0 161 -67 284.5 t-188.5 188.5t-277.5 65q-202 0 -351 -83t-228.5 -239.5t-79.5 -361.5q0 -276 147.5 -423.5t427.5 -147.5q106 0 233 23.5t250 68.5v-192q-214 -91 -475 -91q-380 0 -592.5 200t-212.5 556q0 247 108.5 448.5t309 316t461.5 114.5q220 0 393 -90t267 -256t94 -383zM711 627 q0 -211 172 -211q90 0 137 63.5t57 206.5l13 221q-51 11 -115 11q-125 0 -194.5 -78t-69.5 -213z" />
+<glyph unicode="A" horiz-adv-x="1413" d="M1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381z" />
+<glyph unicode="B" horiz-adv-x="1376" d="M184 1462h455q311 0 451.5 -88.5t140.5 -281.5q0 -131 -61.5 -215t-163.5 -101v-10q139 -31 200.5 -116t61.5 -226q0 -200 -144.5 -312t-392.5 -112h-547v1462zM494 883h180q126 0 182.5 39t56.5 129q0 84 -61.5 120.5t-194.5 36.5h-163v-325zM494 637v-381h202 q128 0 189 49t61 150q0 182 -260 182h-192z" />
+<glyph unicode="C" horiz-adv-x="1305" d="M805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29z" />
+<glyph unicode="D" horiz-adv-x="1516" d="M1397 745q0 -361 -205.5 -553t-593.5 -192h-414v1462h459q358 0 556 -189t198 -528zM1075 737q0 471 -416 471h-165v-952h133q448 0 448 481z" />
+<glyph unicode="E" horiz-adv-x="1147" d="M1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256z" />
+<glyph unicode="F" horiz-adv-x="1124" d="M489 0h-305v1462h838v-254h-533v-377h496v-253h-496v-578z" />
+<glyph unicode="G" horiz-adv-x="1483" d="M739 821h580v-758q-141 -46 -265.5 -64.5t-254.5 -18.5q-331 0 -505.5 194.5t-174.5 558.5q0 354 202.5 552t561.5 198q225 0 434 -90l-103 -248q-160 80 -333 80q-201 0 -322 -135t-121 -363q0 -238 97.5 -363.5t283.5 -125.5q97 0 197 20v305h-277v258z" />
+<glyph unicode="H" horiz-adv-x="1567" d="M1382 0h-309v631h-579v-631h-310v1462h310v-573h579v573h309v-1462z" />
+<glyph unicode="I" horiz-adv-x="678" d="M184 0v1462h310v-1462h-310z" />
+<glyph unicode="J" horiz-adv-x="678" d="M31 -430q-105 0 -183 22v258q80 -20 146 -20q102 0 146 63.5t44 198.5v1370h310v-1368q0 -256 -117 -390t-346 -134z" />
+<glyph unicode="K" horiz-adv-x="1360" d="M1360 0h-352l-383 616l-131 -94v-522h-310v1462h310v-669l122 172l396 497h344l-510 -647z" />
+<glyph unicode="L" horiz-adv-x="1157" d="M184 0v1462h310v-1206h593v-256h-903z" />
+<glyph unicode="M" horiz-adv-x="1931" d="M803 0l-352 1147h-9q19 -350 19 -467v-680h-277v1462h422l346 -1118h6l367 1118h422v-1462h-289v692q0 49 1.5 113t13.5 340h-9l-377 -1145h-284z" />
+<glyph unicode="N" horiz-adv-x="1665" d="M1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462z" />
+<glyph unicode="O" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="P" horiz-adv-x="1286" d="M494 774h102q143 0 214 56.5t71 164.5q0 109 -59.5 161t-186.5 52h-141v-434zM1194 1006q0 -236 -147.5 -361t-419.5 -125h-133v-520h-310v1462h467q266 0 404.5 -114.5t138.5 -341.5z" />
+<glyph unicode="Q" horiz-adv-x="1630" d="M1511 733q0 -258 -91.5 -432.5t-268.5 -255.5l352 -393h-397l-268 328h-23q-336 0 -516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="R" horiz-adv-x="1352" d="M494 813h100q147 0 217 49t70 154q0 104 -71.5 148t-221.5 44h-94v-395zM494 561v-561h-310v1462h426q298 0 441 -108.5t143 -329.5q0 -129 -71 -229.5t-201 -157.5q330 -493 430 -637h-344l-349 561h-165z" />
+<glyph unicode="S" horiz-adv-x="1128" d="M1047 406q0 -198 -142.5 -312t-396.5 -114q-234 0 -414 88v288q148 -66 250.5 -93t187.5 -27q102 0 156.5 39t54.5 116q0 43 -24 76.5t-70.5 64.5t-189.5 99q-134 63 -201 121t-107 135t-40 180q0 194 131.5 305t363.5 111q114 0 217.5 -27t216.5 -76l-100 -241 q-117 48 -193.5 67t-150.5 19q-88 0 -135 -41t-47 -107q0 -41 19 -71.5t60.5 -59t196.5 -102.5q205 -98 281 -196.5t76 -241.5z" />
+<glyph unicode="T" horiz-adv-x="1186" d="M748 0h-310v1204h-397v258h1104v-258h-397v-1204z" />
+<glyph unicode="U" horiz-adv-x="1548" d="M1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309z" />
+<glyph unicode="V" horiz-adv-x="1331" d="M1018 1462h313l-497 -1462h-338l-496 1462h313l275 -870q23 -77 47.5 -179.5t30.5 -142.5q11 92 75 322z" />
+<glyph unicode="W" horiz-adv-x="1980" d="M1608 0h-353l-198 768q-11 41 -37.5 169.5t-30.5 172.5q-6 -54 -30 -173.5t-37 -170.5l-197 -766h-352l-373 1462h305l187 -798q49 -221 71 -383q6 57 27.5 176.5t40.5 185.5l213 819h293l213 -819q14 -55 35 -168t32 -194q10 78 32 194.5t40 188.5l186 798h305z" />
+<glyph unicode="X" horiz-adv-x="1366" d="M1366 0h-354l-340 553l-340 -553h-332l485 754l-454 708h342l315 -526l309 526h334l-459 -725z" />
+<glyph unicode="Y" horiz-adv-x="1278" d="M639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336z" />
+<glyph unicode="Z" horiz-adv-x="1186" d="M1137 0h-1088v201l701 1005h-682v256h1050v-200l-700 -1006h719v-256z" />
+<glyph unicode="[" horiz-adv-x="678" d="M627 -324h-484v1786h484v-211h-224v-1364h224v-211z" />
+<glyph unicode="\" horiz-adv-x="846" d="M289 1462l545 -1462h-277l-545 1462h277z" />
+<glyph unicode="]" horiz-adv-x="678" d="M51 -113h223v1364h-223v211h484v-1786h-484v211z" />
+<glyph unicode="^" horiz-adv-x="1090" d="M8 520l438 950h144l495 -950h-239l-322 643l-280 -643h-236z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -324h-850v140h850v-140z" />
+<glyph unicode="`" horiz-adv-x="1243" d="M707 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="a" horiz-adv-x="1237" d="M870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48t-65 -134 q0 -129 148 -129q106 0 169.5 61t63.5 162v92z" />
+<glyph unicode="b" horiz-adv-x="1296" d="M782 1139q198 0 310 -154.5t112 -423.5q0 -277 -115.5 -429t-314.5 -152q-197 0 -309 143h-21l-51 -123h-233v1556h305v-362q0 -69 -12 -221h12q107 166 317 166zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q94 0 149.5 86.5t55.5 251.5 t-56 247.5t-153 82.5z" />
+<glyph unicode="c" horiz-adv-x="1053" d="M614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18z" />
+<glyph unicode="d" horiz-adv-x="1296" d="M514 -20q-197 0 -309.5 153t-112.5 424q0 275 114.5 428.5t315.5 153.5q211 0 322 -164h10q-23 125 -23 223v358h306v-1556h-234l-59 145h-13q-104 -165 -317 -165zM621 223q117 0 171.5 68t59.5 231v33q0 180 -55.5 258t-180.5 78q-102 0 -158.5 -86.5t-56.5 -251.5 t57 -247.5t163 -82.5z" />
+<glyph unicode="e" horiz-adv-x="1210" d="M623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z" />
+<glyph unicode="f" horiz-adv-x="793" d="M778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229z" />
+<glyph unicode="g" horiz-adv-x="1157" d="M1133 1118v-155l-175 -45q48 -75 48 -168q0 -180 -125.5 -280.5t-348.5 -100.5l-55 3l-45 5q-47 -36 -47 -80q0 -66 168 -66h190q184 0 280.5 -79t96.5 -232q0 -196 -163.5 -304t-469.5 -108q-234 0 -357.5 81.5t-123.5 228.5q0 101 63 169t185 97q-47 20 -82 65.5 t-35 96.5q0 64 37 106.5t107 83.5q-88 38 -139.5 122t-51.5 198q0 183 119 283t340 100q47 0 111.5 -8.5t82.5 -12.5h390zM270 -158q0 -63 60.5 -99t169.5 -36q164 0 257 45t93 123q0 63 -55 87t-170 24h-158q-84 0 -140.5 -39.5t-56.5 -104.5zM381 752q0 -91 41.5 -144 t126.5 -53q86 0 126 53t40 144q0 202 -166 202q-168 0 -168 -202z" />
+<glyph unicode="h" horiz-adv-x="1346" d="M1192 0h-305v653q0 242 -180 242q-128 0 -185 -87t-57 -282v-526h-305v1556h305v-317q0 -37 -7 -174l-7 -90h16q102 164 324 164q197 0 299 -106t102 -304v-729z" />
+<glyph unicode="i" horiz-adv-x="625" d="M147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM465 0h-305v1118h305v-1118z" />
+<glyph unicode="j" horiz-adv-x="625" d="M70 -492q-117 0 -201 25v240q70 -19 143 -19q77 0 112.5 43t35.5 127v1194h305v-1239q0 -178 -103 -274.5t-292 -96.5zM147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150z" />
+<glyph unicode="k" horiz-adv-x="1270" d="M453 608l133 170l313 340h344l-444 -485l471 -633h-352l-322 453l-131 -105v-348h-305v1556h305v-694l-16 -254h4z" />
+<glyph unicode="l" horiz-adv-x="625" d="M465 0h-305v1556h305v-1556z" />
+<glyph unicode="m" horiz-adv-x="2011" d="M1161 0h-305v653q0 121 -40.5 181.5t-127.5 60.5q-117 0 -170 -86t-53 -283v-526h-305v1118h233l41 -143h17q45 77 130 120.5t195 43.5q251 0 340 -164h27q45 78 132.5 121t197.5 43q190 0 287.5 -97.5t97.5 -312.5v-729h-306v653q0 121 -40.5 181.5t-127.5 60.5 q-112 0 -167.5 -80t-55.5 -254v-561z" />
+<glyph unicode="n" horiz-adv-x="1346" d="M1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729z" />
+<glyph unicode="o" horiz-adv-x="1268" d="M403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z" />
+<glyph unicode="p" horiz-adv-x="1296" d="M774 -20q-197 0 -309 143h-16q16 -140 16 -162v-453h-305v1610h248l43 -145h14q107 166 317 166q198 0 310 -153t112 -425q0 -179 -52.5 -311t-149.5 -201t-228 -69zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="q" horiz-adv-x="1296" d="M623 219q116 0 170 66.5t59 232.5v37q0 180 -55.5 258t-178.5 78q-215 0 -215 -338q0 -168 53.5 -251t166.5 -83zM514 -20q-198 0 -310 152.5t-112 424.5q0 274 114.5 428t313.5 154q106 0 185 -40t139 -124h8l27 143h258v-1610h-306v469q0 61 13 168h-13 q-49 -81 -130 -123t-187 -42z" />
+<glyph unicode="r" horiz-adv-x="930" d="M784 1139q62 0 103 -9l-23 -286q-37 10 -90 10q-146 0 -227.5 -75t-81.5 -210v-569h-305v1118h231l45 -188h15q52 94 140.5 151.5t192.5 57.5z" />
+<glyph unicode="s" horiz-adv-x="1018" d="M940 332q0 -172 -119.5 -262t-357.5 -90q-122 0 -208 16.5t-161 48.5v252q85 -40 191.5 -67t187.5 -27q166 0 166 96q0 36 -22 58.5t-76 51t-144 66.5q-129 54 -189.5 100t-88 105.5t-27.5 146.5q0 149 115.5 230.5t327.5 81.5q202 0 393 -88l-92 -220q-84 36 -157 59 t-149 23q-135 0 -135 -73q0 -41 43.5 -71t190.5 -89q131 -53 192 -99t90 -106t29 -143z" />
+<glyph unicode="t" horiz-adv-x="889" d="M631 223q80 0 192 35v-227q-114 -51 -280 -51q-183 0 -266.5 92.5t-83.5 277.5v539h-146v129l168 102l88 236h195v-238h313v-229h-313v-539q0 -65 36.5 -96t96.5 -31z" />
+<glyph unicode="u" horiz-adv-x="1346" d="M952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234z" />
+<glyph unicode="v" horiz-adv-x="1165" d="M426 0l-426 1118h319l216 -637q36 -121 45 -229h6q5 96 45 229l215 637h319l-426 -1118h-313z" />
+<glyph unicode="w" horiz-adv-x="1753" d="M1079 0l-86 391l-116 494h-7l-204 -885h-328l-318 1118h304l129 -495q31 -133 63 -367h6q4 76 35 241l16 85l138 536h336l131 -536q4 -22 12.5 -65t16.5 -91.5t14.5 -95t7.5 -74.5h6q9 72 32 197.5t33 169.5l134 495h299l-322 -1118h-332z" />
+<glyph unicode="x" horiz-adv-x="1184" d="M389 571l-360 547h346l217 -356l219 356h346l-364 -547l381 -571h-347l-235 383l-236 -383h-346z" />
+<glyph unicode="y" horiz-adv-x="1165" d="M0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55z" />
+<glyph unicode="z" horiz-adv-x="999" d="M938 0h-883v180l518 705h-487v233h834v-198l-504 -687h522v-233z" />
+<glyph unicode="{" horiz-adv-x="807" d="M287 270q0 87 -65.5 133t-190.5 46v239q126 0 191 44t65 126v8v318q0 153 97 215.5t341 62.5v-225q-99 -3 -136.5 -38t-37.5 -103v-299q-6 -188 -234 -222v-12q234 -35 234 -212v-9v-299q0 -68 37 -103t137 -38v-226q-244 0 -341 62.5t-97 216.5v315z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="807" d="M520 -45q0 -112 -41 -169t-135.5 -83.5t-261.5 -26.5v226q99 2 136.5 36t37.5 105v299v11q0 86 59 139.5t174 70.5v12q-227 34 -233 222v299q0 70 -37 104t-137 37v225q167 0 262 -26.5t135.5 -84t40.5 -167.5v-318v-10q0 -84 61.5 -126t194.5 -42v-239 q-125 0 -190.5 -41t-65.5 -138v-315z" />
+<glyph unicode="~" d="M322 672q-55 0 -117.5 -33.5t-116.5 -87.5v231q103 109 256 109q73 0 137.5 -16t139.5 -48q129 -55 227 -55q53 0 116 32t117 89v-231q-101 -109 -256 -109q-66 0 -126 13t-150 50q-131 56 -227 56z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M168 606h244l51 -975h-346zM467 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xa2;" d="M563 176q-420 59 -420 565q0 261 104.5 403t315.5 173v166h178v-158q166 -9 299 -74l-90 -235q-72 29 -134 47t-124 18q-121 0 -179 -83.5t-58 -254.5q0 -327 237 -327q82 0 148 15.5t166 60.5v-254q-127 -61 -265 -70v-188h-178v196z" />
+<glyph unicode="&#xa3;" d="M700 1483q195 0 390 -82l-93 -230q-157 64 -272 64q-78 0 -120 -44.5t-42 -127.5v-193h375v-219h-375v-143q0 -170 -151 -248h718v-260h-1048v248q103 44 141.5 101t38.5 157v145h-178v219h178v195q0 201 114.5 309.5t323.5 108.5z" />
+<glyph unicode="&#xa4;" d="M188 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM395 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M584 860l264 602h313l-383 -747h195v-178h-246v-138h246v-178h-246v-221h-287v221h-247v178h247v138h-247v178h190l-377 747h316z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M121 805q0 79 36 144.5t97 105.5q-133 84 -133 233q0 131 111.5 210t293.5 79q170 0 363 -84l-82 -190q-68 32 -138.5 57.5t-148.5 25.5q-81 0 -118 -23t-37 -71q0 -49 49.5 -86t163.5 -82q163 -64 240 -148.5t77 -193.5q0 -177 -125 -260q62 -40 93.5 -92.5t31.5 -126.5 q0 -148 -119.5 -235.5t-320.5 -87.5q-203 0 -349 79v207q81 -41 180 -69.5t169 -28.5q194 0 194 117q0 39 -18.5 63t-63.5 49.5t-125 59.5q-183 74 -252 152.5t-69 195.5zM344 827q0 -67 65 -119t181 -98q78 57 78 146q0 68 -50.5 115t-183.5 96q-37 -14 -63.5 -53.5 t-26.5 -86.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1243" d="M279 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM682 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M895 1010q-97 0 -150 -74t-53 -205q0 -280 203 -280q57 0 123 15t123 44v-191q-120 -57 -252 -57q-204 0 -316 125t-112 346q0 220 110.5 342.5t309.5 122.5q149 0 305 -78l-74 -168q-113 58 -217 58zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="784" d="M561 764l-31 110q-43 -58 -105 -90t-136 -32q-117 0 -179.5 58.5t-62.5 164.5q0 109 82.5 163.5t267.5 63.5l99 4q0 117 -127 117q-81 0 -217 -61l-66 135q66 32 145.5 57t178.5 25q137 0 211.5 -71t74.5 -202v-442h-135zM252 977q0 -38 23 -56t55 -18q77 0 121.5 41.5 t44.5 106.5v36l-99 -6q-145 -10 -145 -104z" />
+<glyph unicode="&#xab;" horiz-adv-x="1260" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26zM588 573l370 455l220 -119l-279 -348l279 -348l-220 -119l-370 453v26z" />
+<glyph unicode="&#xac;" d="M1081 248h-219v364h-774v219h993v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M61 424zM61 424v250h537v-250h-537z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1157 905q0 -170 -143 -233l237 -400h-254l-178 338h-47v-338h-229v916h264q181 0 265.5 -70t84.5 -213zM772 778h31q66 0 94.5 28.5t28.5 94.5q0 65 -28 92t-97 27h-29v-242zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370 t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v201h1036v-201z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M92 1137q0 92 46 172t126 127t174 47q92 0 172.5 -46t127 -127t46.5 -173q0 -93 -46.5 -173.5t-126.5 -125.5t-173 -45q-145 0 -245.5 99.5t-100.5 244.5zM283 1137q0 -64 44.5 -109t110.5 -45t111 46t45 108q0 63 -45.5 110t-110.5 47q-64 0 -109.5 -46t-45.5 -111z" />
+<glyph unicode="&#xb1;" d="M475 674h-387v219h387v389h219v-389h387v-219h-387v-385h-219v385zM88 0v219h993v-219h-993z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M702 586h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M666 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1243" d="M332 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1352" d="M465 465q0 -121 44 -181.5t138 -60.5q126 0 183 86.5t57 282.5v526h305v-1118h-231l-43 150h-15q-42 -85 -102 -127.5t-148 -42.5q-62 0 -114 23t-84 67l5 -85l5 -157v-320h-305v1610h305v-653z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1167 -260h-161v1616h-166v-1616h-162v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M117 723q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M418 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M584 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876z" />
+<glyph unicode="&#xba;" horiz-adv-x="795" d="M737 1116q0 -171 -91.5 -267.5t-250.5 -96.5q-153 0 -245.5 98.5t-92.5 265.5q0 169 89.5 266t252.5 97q152 0 245 -98.5t93 -264.5zM260 1116q0 -100 32.5 -150.5t104.5 -50.5t103.5 50.5t31.5 150.5t-31.5 149.5t-103.5 49.5t-104.5 -49.5t-32.5 -149.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1260" d="M1178 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26zM672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1682 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1319 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191 h198z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1716 1h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129 q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M90 0zM697 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168zM1441 1462l-811 -1462h-239l811 1462h239zM1712 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1349 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#xbf;" horiz-adv-x="977" d="M713 606v-74q0 -98 -44.5 -169t-152.5 -148q-109 -78 -137.5 -122t-28.5 -107q0 -57 43.5 -94t132.5 -37q79 0 169 29t186 71l102 -221q-98 -56 -221.5 -90.5t-229.5 -34.5q-220 0 -345.5 96.5t-125.5 265.5q0 108 48.5 187t191.5 184q95 70 121.5 107t26.5 98v59h264z M745 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM713 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM541 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM938 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM543 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16 q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM365 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM768 1743 q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM959 1567q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM801 1565 q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1950" d="M1829 0h-873v348h-491l-150 -348h-315l655 1462h1174v-254h-563v-321h526v-254h-526v-377h563v-256zM578 608h378v590h-127z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1305" d="M119 0zM805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29zM959 -250q0 -128 -75.5 -185t-233.5 -57 q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM634 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM424 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xca;" horiz-adv-x="1147" d="M175 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM841 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM272 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM675 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99 q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM317 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xcd;" horiz-adv-x="678" d="M167 0zM184 0v1462h310v-1462h-310zM167 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xce;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM570 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcf;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM-3 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM400 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1516" d="M47 850h137v612h459q358 0 556 -189t198 -528q0 -361 -205.5 -553t-593.5 -192h-414v596h-137v254zM1075 737q0 232 -104 351.5t-314 119.5h-163v-358h237v-254h-237v-340h131q450 0 450 481z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1665" d="M184 0zM1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462zM668 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149 q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM824 1579q-63 44 -185 142.5t-190 164.5v21h342 q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM658 1579v27q172 200 235 301h342v-21 q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM1047 1579q-157 93 -234 176q-78 -81 -229 -176h-203 v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM652 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149 q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM474 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37 t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM877 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195q-197 0 -336 65l-90 -135l-162 108l90 136q-198 194 -198 581q0 365 180.5 557.5t517.5 192.5q198 0 344 -70l84 125l160 -104l-88 -131q194 -194 194 -572zM444 733q0 -191 56 -307l506 756q-84 45 -189 45q-185 0 -279 -124.5 t-94 -369.5zM1186 733q0 180 -51 297l-500 -751q76 -39 180 -39q371 0 371 493z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM750 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xda;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM602 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM1006 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM433 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5 q-64 0 -101.5 35t-37.5 98zM836 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM461 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xde;" horiz-adv-x="1286" d="M1194 770q0 -229 -142.5 -353t-404.5 -124h-153v-293h-310v1462h310v-229h178q254 0 388 -119t134 -344zM494 543h100q145 0 216 52.5t71 174.5q0 107 -63.5 159t-199.5 52h-124v-438z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1456" d="M1249 1241q0 -64 -21 -112.5t-53 -86.5t-69 -67t-69 -53t-53 -45t-21 -43q0 -27 26.5 -53t92.5 -66q146 -91 198.5 -140t78 -110t25.5 -139q0 -172 -116.5 -259t-343.5 -87q-99 0 -171 14.5t-132 48.5v242q53 -36 135.5 -61t146.5 -25q168 0 168 123q0 41 -16 66.5 t-57 55.5t-115 72q-126 72 -175 131.5t-49 140.5q0 64 35 117t105 102q77 55 108 95t31 86q0 60 -63.5 100.5t-163.5 40.5q-116 0 -181 -52.5t-65 -148.5v-1128h-305v1139q0 201 146.5 314.5t404.5 113.5q244 0 391 -88.5t147 -237.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM614 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM441 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM843 1240q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM467 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36 t-73 16.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM285 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM688 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36 q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM883 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM725 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1878" d="M1329 -20q-137 0 -249.5 50.5t-184.5 155.5q-98 -117 -196.5 -161.5t-256.5 -44.5q-161 0 -258.5 94.5t-97.5 259.5q0 178 121 262.5t362 93.5l191 6v84q0 69 -44.5 102t-121.5 33q-140 0 -305 -77l-99 202q189 101 422 101q227 0 342 -131q66 64 152.5 96.5t206.5 32.5 q221 0 349 -137.5t128 -370.5v-148h-723q5 -130 77 -203t202 -73q196 0 380 88v-236q-79 -39 -171 -59t-226 -20zM760 518l-113 -4q-124 -4 -186 -47.5t-62 -134.5q0 -129 140 -129q101 0 161 61t60 162v92zM1307 922q-217 0 -234 -236h430q-2 112 -55 174t-141 62z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1053" d="M92 0zM614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18zM805 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21 v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M447 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xea;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M860 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M297 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM274 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xed;" horiz-adv-x="625" d="M145 0zM465 0h-305v1118h305v-1118zM145 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xee;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM544 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xef;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM-29 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM374 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1268" d="M510 1303q-80 53 -152 92l101 176q144 -65 258 -141l225 139l100 -154l-170 -104q156 -143 230 -324.5t74 -413.5q0 -280 -145 -436.5t-400 -156.5q-245 0 -392 137t-147 372q0 233 130 369.5t351 136.5q205 0 275 -98l8 4q-67 162 -192 281l-230 -142l-100 156zM864 532 q0 108 -61 173t-168 65q-121 0 -176.5 -68.5t-55.5 -214.5q0 -140 60 -211t172 -71q123 0 176 82t53 245z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1346" d="M160 0zM1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729zM508 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82 q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M612 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M467 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M864 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M469 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M291 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM694 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xf7;" d="M88 612v219h993v-219h-993zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1268" d="M1176 561q0 -273 -144 -427t-401 -154q-126 0 -234 45l-67 -101l-154 105l68 100q-152 156 -152 432q0 274 143 426t402 152q132 0 248 -52l55 82l152 -108l-58 -84q142 -155 142 -416zM403 561q0 -94 19 -166l317 475q-43 23 -106 23q-122 0 -176 -82.5t-54 -249.5z M864 561q0 81 -12 141l-309 -462q38 -15 92 -15q122 0 175.5 84.5t53.5 251.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM498 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM901 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM326 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM729 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM393 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5 h-203z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1296" d="M465 973q50 81 131 123.5t186 42.5q198 0 310 -154.5t112 -423.5q0 -273 -111.5 -427t-310.5 -154q-213 0 -317 137h-14l7 -62l7 -94v-453h-305v2048h305v-391l-7 -120l-7 -72h14zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM243 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM646 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="625" d="M465 0h-305v1118h305v-1118z" />
+<glyph unicode="&#x152;" horiz-adv-x="1993" d="M1872 0h-873q-38 -9 -109 -14.5t-116 -5.5q-319 0 -487 197t-168 558q0 363 169.5 556.5t487.5 193.5q61 0 127 -7t101 -16h868v-254h-563v-321h526v-254h-526v-377h563v-256zM776 1227q-166 0 -252 -125.5t-86 -368.5q0 -244 86 -368.5t250 -124.5q65 0 126 10.5 t99 28.5v907q-35 19 -101.5 30t-121.5 11z" />
+<glyph unicode="&#x153;" horiz-adv-x="2003" d="M1446 -20q-271 0 -420 155q-141 -155 -391 -155q-162 0 -286 70t-190.5 202t-66.5 309q0 277 141.5 427.5t399.5 150.5q112 0 212 -39.5t171 -116.5q144 156 383 156q244 0 380 -135t136 -373v-148h-746v-8q7 -127 81.5 -197.5t207.5 -70.5q107 0 200 21t193 67v-236 q-81 -39 -175.5 -59t-229.5 -20zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1405 922q-94 0 -156 -57.5t-71 -178.5h450q-2 111 -60.5 173.5t-162.5 62.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM297 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97 t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1243" d="M852 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M842 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM684 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1243" d="M457 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 436v230h860v-230h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 436v230h1884v-230h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="444" d="M39 961l-14 22q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x2019;" horiz-adv-x="444" d="M406 1462l14 -22q-50 -197 -176 -479h-219q69 296 100 501h281z" />
+<glyph unicode="&#x201a;" horiz-adv-x="596" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x201c;" horiz-adv-x="911" d="M492 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280zM25 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x201d;" horiz-adv-x="911" d="M420 1440q-50 -197 -176 -479h-219q69 296 100 501h281zM887 1440q-50 -197 -176 -479h-219q69 296 100 501h280z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1061" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280zM926 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M98 748q0 154 74 235.5t213 81.5q137 0 212 -82t75 -235q0 -152 -75.5 -235t-211.5 -83q-138 0 -212.5 83t-74.5 235z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1751" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM700 143q0 84 45 127t132 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-85 0 -131 44.5t-46 125.5zM1284 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="754" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="754" d="M672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M657 1462l-811 -1462h-239l811 1462h239z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M758 737h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM395 905v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#x20ac;" d="M803 1225q-122 0 -201 -70.5t-102 -204.5h403v-176h-418l-2 -35v-47l2 -33h355v-178h-338q51 -243 321 -243q143 0 275 57v-256q-116 -59 -293 -59q-245 0 -403 133t-199 368h-137v178h118q-4 23 -4 62l2 53h-116v176h133q37 242 199 382.5t405 140.5q188 0 352 -82 l-98 -232q-69 31 -129 48.5t-125 17.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M381 741h-168v572h-197v149h564v-149h-199v-572zM956 741l-165 529h-7l4 -111v-418h-163v721h247l160 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-142z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1296" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000..1205787
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000..1f639a1
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000..6a2607b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1065 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM1081 0h-301l237 1118h301z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1081 0h-301l330 1556h301z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l237 1118h301zM1761 1380q0 87 48 131.5 t135 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-152 0 -152 123z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l329 1556h301z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M391 485h-241l157 977h340zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="928" d="M549 1462l-152 -528h-196l71 528h277zM954 1462l-151 -528h-199l74 528h276z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 846l-69 -232h258l-19 -206h-297l-116 -408h-220l117 408h-194l-115 -408h-215l113 408h-238l18 206h277l70 232h-252l18 209h289l119 407h217l-117 -407h199l116 407h215l-116 -407h239l-18 -209h-279zM553 614h197l69 232h-196z" />
+<glyph unicode="$" d="M1034 496q0 -184 -125.5 -291.5t-367.5 -124.5l-39 -199h-140l44 201q-209 12 -355 86v266q198 -107 404 -117l71 322q-163 61 -241 151t-78 214q0 173 127 279.5t350 121.5l35 151h139l-33 -151q166 -22 295 -90l-106 -232q-132 65 -242 74l-63 -299q131 -51 195 -99.5 t97 -113t33 -149.5zM594 322q63 9 102 45t39 98q0 46 -24.5 75.5t-59.5 43.5zM633 1157q-62 -7 -96.5 -41t-34.5 -94q0 -79 80 -111z" />
+<glyph unicode="%" horiz-adv-x="1753" d="M518 1274q-63 0 -110.5 -128.5t-47.5 -277.5q0 -96 56 -96q65 0 112 131t47 275q0 96 -57 96zM821 1165q0 -166 -56 -310t-151 -217t-217 -73q-139 0 -210.5 83.5t-71.5 236.5q0 169 55.5 311.5t148.5 214.5t216 72q137 0 211.5 -80t74.5 -238zM1554 1462l-1083 -1462 h-240l1088 1462h235zM1376 690q-39 0 -75 -56t-59 -154t-23 -195t55 -97q41 0 77 55t59.5 154.5t23.5 196.5q0 96 -58 96zM1679 590q0 -167 -54 -313.5t-148 -220.5t-215 -74q-144 0 -216.5 78.5t-72.5 222.5q0 177 53 322.5t148 219.5t219 74q137 0 211.5 -78.5 t74.5 -230.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1450" d="M1325 0h-350l-72 98q-175 -118 -403 -118q-209 0 -320.5 97.5t-111.5 280.5q0 145 78.5 248.5t273.5 200.5q-76 130 -76 258q0 195 117.5 307.5t316.5 112.5q169 0 266 -82.5t97 -224.5q0 -280 -365 -426l195 -263q44 57 80.5 121.5t78.5 173.5h300q-133 -313 -310 -497z M541 623q-88 -51 -123 -104.5t-35 -131.5q0 -65 45.5 -108t116.5 -43q115 0 221 59zM662 920q113 59 155.5 111t42.5 112q0 57 -30 82.5t-70 25.5q-66 0 -102.5 -46.5t-36.5 -119.5q0 -46 12 -92t29 -73z" />
+<glyph unicode="'" horiz-adv-x="522" d="M549 1462l-152 -528h-196l71 528h277z" />
+<glyph unicode="(" horiz-adv-x="694" d="M74 281q0 339 122.5 626.5t381.5 554.5h262q-255 -278 -377.5 -573.5t-122.5 -618.5q0 -308 117 -594h-234q-149 266 -149 605z" />
+<glyph unicode=")" horiz-adv-x="694" d="M618 858q0 -342 -124 -630.5t-379 -551.5h-262q499 545 499 1192q0 307 -116 594h233q149 -264 149 -604z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M885 1522l-113 -353l387 29l-18 -254l-338 43l160 -336l-246 -73l-90 337l-197 -278l-207 164l275 248l-326 92l86 237l338 -174l33 369z" />
+<glyph unicode="+" d="M475 612h-366v219h366v369h219v-369h367v-219h-367v-364h-219v364z" />
+<glyph unicode="," horiz-adv-x="569" d="M377 238l8 -23q-118 -255 -262 -479h-225q74 167 194 502h285z" />
+<glyph unicode="-" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="." horiz-adv-x="584" d="M25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="/" horiz-adv-x="862" d="M1014 1462l-809 -1462h-295l809 1462h295z" />
+<glyph unicode="0" d="M1110 1012q0 -470 -168.5 -751t-472.5 -281q-198 0 -300.5 122t-102.5 365q0 297 84 537t228 360.5t333 120.5q399 0 399 -473zM684 1235q-80 0 -149.5 -104t-117.5 -302t-48 -368q0 -115 27.5 -173.5t97.5 -58.5q81 0 150.5 106t116 301t46.5 386q0 111 -30.5 162 t-92.5 51z" />
+<glyph unicode="1" d="M688 0h-305l180 829q35 152 76 287q-9 -8 -61.5 -47t-262.5 -170l-133 215l566 348h249z" />
+<glyph unicode="2" d="M913 0h-962l43 213l477 424q180 159 248.5 254.5t68.5 179.5q0 75 -41 114.5t-110 39.5q-66 0 -135.5 -33.5t-171.5 -118.5l-146 203q132 112 252 159.5t250 47.5q190 0 301 -98t111 -259q0 -107 -41 -201t-122.5 -188t-266.5 -245l-269 -222v-10h568z" />
+<glyph unicode="3" d="M1104 1149q0 -156 -94.5 -262t-261.5 -135v-4q131 -26 198.5 -106.5t67.5 -201.5q0 -133 -74 -238t-212 -163.5t-327 -58.5q-239 0 -387 79v267q84 -50 182 -75.5t191 -25.5q158 0 243 63.5t85 176.5q0 172 -258 172h-138l46 221h73q167 0 263 62t96 172q0 67 -43 104 t-121 37q-134 0 -287 -100l-127 204q124 81 232.5 113.5t246.5 32.5q190 0 298 -90.5t108 -243.5z" />
+<glyph unicode="4" d="M1028 303h-170l-63 -303h-293l63 303h-590l48 234l770 925h311l-195 -919h170zM616 543l58 248q12 58 40 164t42 141h-6q-35 -63 -132 -181l-313 -372h311z" />
+<glyph unicode="5" d="M623 922q183 0 289 -103t106 -287q0 -167 -71.5 -292t-208.5 -192.5t-330 -67.5q-117 0 -218.5 23t-162.5 58v269q174 -99 352 -99q154 0 241 71t87 194q0 94 -57.5 141t-166.5 47q-102 0 -213 -33l-104 78l207 733h755l-55 -262h-489l-88 -293q72 15 127 15z" />
+<glyph unicode="6" d="M88 469q0 202 61 395.5t167.5 335t256.5 213.5t357 72q125 0 223 -27l-51 -246q-84 25 -191 25q-194 0 -313.5 -108t-185.5 -345h4q115 166 311 166q157 0 242.5 -97t85.5 -273q0 -169 -71 -313.5t-190.5 -215.5t-277.5 -71q-212 0 -320 127t-108 362zM530 227 q99 0 161.5 94t62.5 236q0 71 -33.5 113.5t-102.5 42.5q-60 0 -114.5 -35.5t-87.5 -95.5t-33 -160q0 -91 40 -143t107 -52z" />
+<glyph unicode="7" d="M78 0l737 1202h-629l56 260h975l-41 -194l-752 -1268h-346z" />
+<glyph unicode="8" d="M721 1485q123 0 215.5 -42t141 -118t48.5 -174q0 -134 -80.5 -233.5t-230.5 -151.5q217 -141 217 -365q0 -122 -63.5 -218.5t-181 -149.5t-273.5 -53q-214 0 -336.5 100t-122.5 270q0 298 348 426q-165 132 -165 299q0 119 58 212.5t168 145.5t257 52zM582 643 q-116 -45 -173 -107t-57 -153q0 -81 50 -128.5t135 -47.5q93 0 147.5 53.5t54.5 138.5q0 73 -36.5 131.5t-120.5 112.5zM694 1260q-76 0 -121 -46.5t-45 -119.5q0 -132 123 -201q185 72 185 221q0 68 -39.5 107t-102.5 39z" />
+<glyph unicode="9" d="M1092 1001q0 -280 -99 -533t-264 -370.5t-403 -117.5q-128 0 -240 32v256q111 -41 227 -41q121 0 207.5 49t144 138.5t99.5 257.5h-4q-111 -158 -295 -158q-163 0 -252.5 103.5t-89.5 285.5q0 166 73 305.5t196 208t286 68.5q203 0 308.5 -123t105.5 -361zM645 1237 q-65 0 -115.5 -42t-78 -114t-27.5 -153q0 -87 37.5 -131.5t105.5 -44.5q60 0 111.5 36.5t82 100t30.5 158.5q0 84 -35.5 137t-110.5 53z" />
+<glyph unicode=":" horiz-adv-x="584" d="M207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode=";" horiz-adv-x="584" d="M385 215q-118 -255 -262 -479h-225q74 167 194 502h285zM207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5z" />
+<glyph unicode="&#x3c;" d="M1061 203l-952 438v143l952 496v-240l-643 -317l643 -281v-239z" />
+<glyph unicode="=" d="M109 807v217h952v-217h-952zM109 418v219h952v-219h-952z" />
+<glyph unicode="&#x3e;" d="M109 442l643 281l-643 317v240l952 -496v-143l-952 -438v239z" />
+<glyph unicode="?" horiz-adv-x="940" d="M260 485l14 78q19 103 73.5 177t172.5 155q124 84 157.5 127t33.5 96q0 119 -133 119q-50 0 -106.5 -16t-201.5 -84l-92 221q230 125 445 125q177 0 280 -87.5t103 -244.5q0 -83 -28.5 -149.5t-82.5 -123t-190 -147.5q-64 -43 -96.5 -73t-52.5 -64.5t-38 -108.5h-258z M166 115q0 91 55 144.5t150 53.5q68 0 108.5 -38t40.5 -107q0 -87 -55 -141t-143 -54q-74 0 -115 38t-41 104z" />
+<glyph unicode="@" horiz-adv-x="1753" d="M1733 840q0 -173 -64 -321t-177.5 -231t-254.5 -83q-88 0 -144.5 38.5t-72.5 108.5h-6q-50 -77 -113 -112t-147 -35q-127 0 -198 79.5t-71 229.5q0 147 67.5 276.5t187.5 205t268 75.5q185 0 327 -55l-106 -420q-11 -44 -19 -76.5t-8 -64.5q0 -68 58 -68q66 0 124 64 t92.5 171t34.5 214q0 213 -123.5 325.5t-359.5 112.5q-203 0 -366.5 -94t-255 -266t-91.5 -392q0 -243 134 -380.5t376 -137.5q117 0 219.5 20t221.5 66v-186q-230 -90 -465 -90q-217 0 -378 85.5t-246 241.5t-85 359q0 279 120.5 497t343 341.5t497.5 123.5 q318 0 499 -163.5t181 -458.5zM995 889q-82 0 -145.5 -51.5t-100 -137t-36.5 -174.5q0 -65 24.5 -102t69.5 -37q141 0 213 270l57 222q-36 10 -82 10z" />
+<glyph unicode="A" horiz-adv-x="1286" d="M842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333z" />
+<glyph unicode="B" horiz-adv-x="1270" d="M788 1462q229 0 346 -81.5t117 -243.5q0 -150 -83 -247.5t-236 -129.5v-6q100 -26 159.5 -96.5t59.5 -180.5q0 -229 -153 -353t-423 -124h-522l309 1462h426zM545 883h149q121 0 181.5 48.5t60.5 139.5q0 137 -170 137h-152zM412 256h180q117 0 183.5 58t66.5 161 q0 162 -183 162h-165z" />
+<glyph unicode="C" horiz-adv-x="1253" d="M905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z" />
+<glyph unicode="D" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l309 1462h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-202 -952h106z" />
+<glyph unicode="E" horiz-adv-x="1110" d="M870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512z" />
+<glyph unicode="F" horiz-adv-x="1087" d="M358 0h-305l309 1462h814l-54 -254h-508l-79 -377h473l-56 -253h-473z" />
+<glyph unicode="G" horiz-adv-x="1413" d="M754 821h563l-162 -762q-134 -46 -248.5 -62.5t-242.5 -16.5q-259 0 -400 147t-141 422q0 268 107 484.5t301 334t448 117.5q218 0 410 -99l-115 -251q-74 40 -148 64t-161 24q-153 0 -273.5 -83t-189 -236.5t-68.5 -330.5q0 -172 72.5 -252.5t222.5 -80.5q76 0 170 24 l66 299h-267z" />
+<glyph unicode="H" horiz-adv-x="1434" d="M1135 0h-306l134 631h-471l-134 -631h-305l309 1462h306l-121 -573h471l121 573h305z" />
+<glyph unicode="I" horiz-adv-x="659" d="M53 0l312 1462h305l-312 -1462h-305z" />
+<glyph unicode="J" horiz-adv-x="678" d="M-135 -430q-94 0 -187 27v253q88 -20 164 -20q99 0 160.5 60.5t89.5 191.5l293 1380h305l-303 -1423q-52 -245 -175.5 -357t-346.5 -112z" />
+<glyph unicode="K" horiz-adv-x="1255" d="M1141 0h-338l-211 592l-125 -70l-109 -522h-305l309 1462h306l-152 -702l158 205l409 497h361l-594 -700z" />
+<glyph unicode="L" horiz-adv-x="1061" d="M53 0l309 1462h306l-256 -1206h512l-54 -256h-817z" />
+<glyph unicode="M" horiz-adv-x="1802" d="M838 369l551 1093h423l-309 -1462h-280l145 692q53 247 105 441h-5l-569 -1133h-281l-61 1133h-4q-11 -88 -38 -231t-187 -902h-275l309 1462h404l68 -1093h4z" />
+<glyph unicode="N" horiz-adv-x="1546" d="M1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274z" />
+<glyph unicode="O" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246t56 357 q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="P" horiz-adv-x="1188" d="M522 774h56q142 0 223.5 69t81.5 185q0 180 -195 180h-74zM1190 1036q0 -241 -169.5 -378.5t-467.5 -137.5h-86l-109 -520h-305l309 1462h338q242 0 366 -106.5t124 -319.5z" />
+<glyph unicode="Q" horiz-adv-x="1495" d="M1432 938q0 -316 -122.5 -555.5t-334.5 -337.5l254 -393h-359l-178 328h-26q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87 t155.5 246t56 357q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="R" horiz-adv-x="1247" d="M530 813h78q131 0 204 57t73 174q0 82 -47.5 123t-149.5 41h-74zM477 561l-119 -561h-305l309 1462h359q237 0 356 -102t119 -299q0 -158 -83 -271.5t-239 -168.5l261 -621h-332l-207 561h-119z" />
+<glyph unicode="S" horiz-adv-x="1085" d="M946 432q0 -209 -148 -330.5t-401 -121.5q-221 0 -356 90v274q193 -108 358 -108q112 0 175 42.5t63 116.5q0 43 -13.5 75.5t-38.5 60.5t-124 102q-138 99 -194 196t-56 209q0 129 62 230.5t176.5 158t263.5 56.5q217 0 397 -99l-109 -233q-156 74 -288 74 q-83 0 -136 -45t-53 -119q0 -61 33 -106.5t148 -120.5q121 -80 181 -176.5t60 -225.5z" />
+<glyph unicode="T" horiz-adv-x="1087" d="M571 0h-305l254 1204h-352l55 258h1010l-55 -258h-353z" />
+<glyph unicode="U" horiz-adv-x="1415" d="M1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306z" />
+<glyph unicode="V" horiz-adv-x="1208" d="M535 299q78 221 110 283l432 880h316l-748 -1462h-334l-127 1462h295l51 -880q4 -45 4 -133q-2 -103 -6 -150h7z" />
+<glyph unicode="W" horiz-adv-x="1831" d="M1006 1018q-46 -146 -115 -299l-324 -719h-338l-45 1462h287l6 -798q0 -52 -4 -173t-10 -174h6q22 64 67 180.5t60 145.5l369 819h270l21 -873q0 -146 -9 -272h6q43 129 131 349l330 796h309l-647 -1462h-346l-22 721l-2 139q0 88 4 158h-4z" />
+<glyph unicode="X" horiz-adv-x="1241" d="M1124 0h-331l-172 543l-396 -543h-342l576 764l-238 698h320l153 -518l363 518h344l-545 -725z" />
+<glyph unicode="Y" horiz-adv-x="1155" d="M627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312z" />
+<glyph unicode="Z" horiz-adv-x="1098" d="M920 0h-981l38 201l777 1005h-543l53 256h936l-41 -202l-782 -1004h596z" />
+<glyph unicode="[" horiz-adv-x="678" d="M436 -324h-473l381 1786h473l-45 -211h-215l-291 -1364h215z" />
+<glyph unicode="\" horiz-adv-x="862" d="M481 1462l224 -1462h-267l-217 1462h260z" />
+<glyph unicode="]" horiz-adv-x="678" d="M-92 -113h213l291 1364h-215l45 211h473l-381 -1786h-471z" />
+<glyph unicode="^" horiz-adv-x="1081" d="M20 520l619 950h147l277 -950h-223l-174 633l-402 -633h-244z" />
+<glyph unicode="_" horiz-adv-x="819" d="M635 -324h-821l30 140h822z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M934 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -108t84.5 -298t-68 -367.5t-187 -281.5t-263 -104q-194 0 -276 163h-8l-58 -143h-231l330 1556h301l-62 -288q-41 -182 -84 -299h8q78 98 142.5 134t140.5 36zM692 895q-68 0 -130 -65t-102 -180.5t-40 -250.5q0 -80 37 -128t102 -48q67 0 128 69 t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="c" horiz-adv-x="989" d="M506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z" />
+<glyph unicode="d" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 107t-84.5 300q0 196 71.5 374.5t188.5 278t258 99.5q82 0 141.5 -37t112.5 -127h8l2 28q6 110 25 195l76 358h301l-330 -1556h-229l14 145h-4q-71 -87 -148.5 -126t-170.5 -39zM532 223q66 0 128.5 68.5t100.5 182.5t38 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -176 137 -176z" />
+<glyph unicode="e" horiz-adv-x="1141" d="M696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5t147.5 -52.5 q87 0 158 19t172 67v-227q-172 -86 -390 -86z" />
+<glyph unicode="f" horiz-adv-x="764" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z" />
+<glyph unicode="g" horiz-adv-x="1108" d="M1186 1116l-35 -166l-174 -41q16 -52 16 -118q0 -195 -121 -308.5t-329 -113.5q-59 0 -99 10q-84 -27 -84 -78q0 -34 30 -49t89 -23l137 -18q163 -21 237.5 -84.5t74.5 -183.5q0 -211 -156 -323t-446 -112q-208 0 -324.5 75.5t-116.5 207.5q0 102 68.5 175.5t214.5 121.5 q-74 47 -74 133q0 71 44.5 122.5t146.5 98.5q-65 49 -96 112t-31 153q0 199 125.5 315.5t341.5 116.5q83 0 166 -23h395zM365 -6q-106 -14 -160.5 -57t-54.5 -109q0 -115 194 -115q151 0 228 45t77 127q0 39 -32.5 60t-137.5 35zM614 948q-77 0 -124.5 -76.5t-47.5 -191.5 q0 -119 103 -119q75 0 121.5 76.5t46.5 193.5t-99 117z" />
+<glyph unicode="h" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l330 1556h301q-39 -181 -60 -278t-86 -309h8q62 77 138 123.5t176 46.5q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="i" horiz-adv-x="608" d="M322 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM338 0h-301l237 1118h301z" />
+<glyph unicode="j" horiz-adv-x="608" d="M-90 -492q-104 0 -174 25v242q61 -21 114 -21q137 0 173 170l253 1194h302l-265 -1239q-77 -371 -403 -371zM324 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123z" />
+<glyph unicode="k" horiz-adv-x="1163" d="M920 1118h344l-498 -504l285 -614h-336l-183 420l-120 -72l-74 -348h-301l330 1556h301l-148 -694q-8 -41 -29 -117l-28 -102h4z" />
+<glyph unicode="l" horiz-adv-x="608" d="M338 0h-301l330 1556h301z" />
+<glyph unicode="m" horiz-adv-x="1853" d="M844 1139q219 0 262 -228h6q68 110 160.5 169t197.5 59q136 0 207.5 -85t71.5 -237q0 -76 -23 -180l-133 -637h-301l138 653q16 68 16 119q0 123 -98 123q-92 0 -166.5 -112t-118.5 -318l-96 -465h-301l137 653q16 68 16 119q0 123 -98 123q-92 0 -167 -114t-118 -318 l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228z" />
+<glyph unicode="n" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="o" horiz-adv-x="1198" d="M805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5q196 0 310 -118 t114 -325z" />
+<glyph unicode="p" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -107.5t84.5 -300.5q0 -191 -68.5 -367.5t-187.5 -280t-262 -103.5q-83 0 -143 37t-111 126h-8q-12 -159 -43 -295l-72 -340h-301l342 1610h230l-17 -170h9q138 191 317 191zM692 895q-68 0 -131.5 -67.5t-102 -180t-38.5 -248.5q0 -80 37 -128 t102 -48q67 0 128 69t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="q" horiz-adv-x="1217" d="M391 -20q-88 0 -156 47.5t-106.5 138.5t-38.5 219q0 198 72 377.5t189 278t257 98.5q86 0 152.5 -37.5t124.5 -126.5h8l57 143h232l-342 -1610h-301q47 218 73 337.5t84 304.5h-8q-72 -94 -143 -132t-154 -38zM535 223q64 0 127.5 70t100 181t36.5 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -88 36.5 -132t103.5 -44z" />
+<glyph unicode="r" horiz-adv-x="862" d="M842 1139q59 0 96 -11l-66 -290q-45 16 -100 16q-116 0 -203.5 -91.5t-124.5 -262.5l-106 -500h-301l237 1118h230l-21 -207h6q147 228 353 228z" />
+<glyph unicode="s" horiz-adv-x="969" d="M829 369q0 -188 -124.5 -288.5t-346.5 -100.5q-107 0 -186.5 15t-148.5 50v248q157 -90 319 -90q80 0 131 32.5t51 88.5q0 43 -37 77t-131 86q-121 68 -169 135.5t-48 159.5q0 170 110.5 263.5t315.5 93.5q201 0 363 -95l-99 -215q-140 84 -258 84q-57 0 -92 -25.5 t-35 -68.5q0 -39 32 -68.5t120 -74.5q123 -63 178 -137t55 -170z" />
+<glyph unicode="t" horiz-adv-x="840" d="M514 223q65 0 162 35v-225q-111 -53 -266 -53q-150 0 -220.5 63t-70.5 195q0 50 12 112l115 539h-152l29 147l196 84l132 236h194l-49 -238h283l-50 -229h-282l-115 -539q-6 -30 -6 -53q0 -74 88 -74z" />
+<glyph unicode="u" horiz-adv-x="1237" d="M262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213z" />
+<glyph unicode="v" horiz-adv-x="1049" d="M455 301q55 153 92 223l297 594h323l-604 -1118h-323l-138 1118h295l45 -586q7 -133 7 -231h6z" />
+<glyph unicode="w" horiz-adv-x="1614" d="M856 860q-62 -178 -123 -319l-233 -541h-324l-51 1118h281l4 -495l-4 -167l-7 -171h4q6 20 14 41.5t51 136.5t46 119l231 536h328v-536q0 -142 -10 -297h6l28 80q73 208 95 258l219 495h307l-530 -1118h-330l-6 520q0 155 10 340h-6z" />
+<glyph unicode="x" horiz-adv-x="1087" d="M379 573l-225 545h321l115 -334l244 334h354l-467 -561l244 -557h-326l-125 342l-264 -342h-350z" />
+<glyph unicode="y" horiz-adv-x="1063" d="M102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49z" />
+<glyph unicode="z" horiz-adv-x="932" d="M748 0h-795l35 180l575 705h-397l51 233h750l-43 -200l-566 -685h439z" />
+<glyph unicode="{" horiz-adv-x="727" d="M201 319q0 140 -209 140l45 229q122 0 192.5 41.5t92.5 138.5l61 285q38 170 131 239.5t270 69.5h84l-49 -225q-90 -2 -130.5 -34.5t-55.5 -106.5l-66 -297q-45 -207 -276 -236v-8q85 -26 126.5 -82.5t41.5 -134.5q0 -44 -15 -113l-36 -178q-7 -28 -7 -51q0 -54 33.5 -74 t91.5 -20v-226h-53q-167 0 -253.5 63.5t-86.5 184.5q0 57 14 125l39 184q15 69 15 86z" />
+<glyph unicode="|" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="727" d="M256 1462q340 0 340 -248q0 -56 -14 -124l-39 -185q-15 -69 -15 -86q0 -139 209 -139l-45 -229q-122 0 -192.5 -42t-91.5 -139l-62 -284q-37 -170 -130.5 -240t-270.5 -70h-45v226q93 3 137 35.5t59 105.5l66 297q25 111 95 166t181 69v9q-168 51 -168 217q0 43 15 112 l37 179q6 30 6 51q0 54 -36.5 74t-109.5 20l41 225h33z" />
+<glyph unicode="~" d="M342 672q-54 0 -116.5 -33t-116.5 -88v231q101 109 256 109q64 0 117 -14t139 -50q64 -27 111 -41t95 -14q51 0 112 30.5t122 90.5v-231q-103 -109 -256 -109q-59 0 -109 11.5t-147 51.5q-89 38 -127 47t-80 9z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M182 606h242l-158 -977h-340zM549 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 85 54 139.5t144 54.5q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xa2;" d="M575 -20h-188l49 210q-134 36 -203 136t-69 258q0 193 62.5 355t178 262.5t267.5 123.5l33 158h188l-35 -158q118 -14 225 -65l-92 -230q-53 23 -105 40t-118 17q-133 0 -216 -143t-83 -336q0 -96 45 -144t127 -48q75 0 140 23.5t134 58.5v-246q-136 -71 -299 -80z" />
+<glyph unicode="&#xa3;" d="M872 1485q195 0 369 -86l-113 -232q-141 68 -237 68q-75 0 -123 -39.5t-68 -132.5l-47 -229h299l-45 -220h-299l-18 -84q-42 -195 -209 -270h655l-55 -260h-993l49 246q196 48 244 264l22 104h-192l45 220h192l49 247q41 197 162 300.5t313 103.5z" />
+<glyph unicode="&#xa4;" d="M190 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM397 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M608 872l371 590h311l-506 -747h203l-39 -178h-252l-28 -138h252l-37 -178h-252l-47 -221h-291l47 221h-252l37 178h252l29 138h-252l39 178h196l-192 747h297z" />
+<glyph unicode="&#xa6;" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M150 760q0 89 47.5 163t154.5 142q-42 34 -70 84.5t-28 107.5q0 149 117 234.5t313 85.5q172 0 344 -88l-82 -193q-147 84 -282 84q-144 0 -144 -106q0 -43 40.5 -76t127.5 -72q242 -106 242 -303q0 -188 -193 -303q38 -35 64 -85.5t26 -108.5q0 -161 -126 -253.5 t-345 -92.5q-204 0 -336 75v224q172 -105 345 -105q99 0 144.5 35t45.5 92q0 39 -33 72.5t-127 79.5q-117 57 -181 131t-64 176zM506 967q-51 -25 -82 -70.5t-31 -99.5t43.5 -96.5t143.5 -88.5q49 31 75.5 78.5t26.5 95.5q0 109 -176 181z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M932 1010q-111 0 -163 -73t-52 -214q0 -134 55.5 -203t159.5 -69q43 0 108.5 15.5t124.5 43.5v-191q-131 -57 -262 -57q-196 0 -307 122.5t-111 336.5q0 225 117.5 351t325.5 126q142 0 284 -72l-75 -174q-114 58 -205 58zM125 731q0 200 100 375t275 276t377 101 q199 0 373.5 -99t276 -275.5t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83 q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="772" d="M369 752q-103 0 -160 70t-57 198q0 117 46 228t123 171t177 60q120 0 180 -103h6l39 90h154l-158 -702h-154l8 92h-2q-80 -104 -202 -104zM442 903q45 0 84 41.5t65.5 120t26.5 154.5q0 106 -88 106q-73 0 -123.5 -96t-50.5 -215q0 -111 86 -111z" />
+<glyph unicode="&#xab;" horiz-adv-x="1151" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18zM559 569l402 463l190 -155l-279 -334l136 -350l-246 -103l-203 461v18z" />
+<glyph unicode="&#xac;" d="M1061 248h-219v364h-733v219h952v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M41 424zM41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1237 899q0 -86 -44 -149.5t-130 -96.5l197 -360h-254l-138 297h-67v-297h-230v874h308q173 0 265.5 -67.5t92.5 -200.5zM801 758h51q72 0 113 31t41 92q0 59 -35.5 88.5t-116.5 29.5h-53v-241zM125 731q0 200 100 375t275 276t377 101q199 0 373.5 -99t276 -275.5 t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036l45 201h1036z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M164 1137q0 93 46.5 173.5t127.5 126.5t172 46q93 0 173.5 -47t126.5 -127t46 -172q0 -93 -46 -173t-126 -125.5t-174 -45.5q-93 0 -173 45t-126.5 125t-46.5 174zM354 1137q0 -63 45.5 -108.5t110.5 -45.5q66 0 111 46t45 108q0 63 -45.5 110t-110.5 47t-110.5 -47.5 t-45.5 -109.5z" />
+<glyph unicode="&#xb1;" d="M475 674h-366v219h366v369h219v-369h367v-219h-367v-365h-219v365zM109 0v219h952v-219h-952z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M707 586h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M813 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66 l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M483 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1249" d="M424 348q0 -60 31.5 -92.5t79.5 -32.5q90 0 162.5 106.5t117.5 319.5l98 469h301l-237 -1118h-229l18 176h-6q-117 -196 -266 -196q-51 0 -89.5 19.5t-58.5 47.5h-6q-8 -66 -21.5 -139t-82.5 -400h-304l342 1610h301l-135 -645q-16 -70 -16 -125z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1202 -260h-162v1616h-166v-1616h-161v819q-62 -18 -146 -18q-216 0 -318 125t-102 376q0 256 107.5 385t343.5 129h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M131 553zM131 695q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M262 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M528 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165z" />
+<glyph unicode="&#xba;" horiz-adv-x="754" d="M809 1194q0 -128 -48.5 -232.5t-132.5 -157t-196 -52.5q-134 0 -202 75t-68 211q0 197 104 319t277 122q129 0 197.5 -73.5t68.5 -211.5zM522 1315q-64 0 -107.5 -89.5t-43.5 -199.5q0 -111 80 -111q63 0 105 85.5t42 207.5q0 107 -76 107z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1151" d="M1079 535l-401 -463l-191 155l279 334l-135 350l246 103l202 -461v-18zM592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M97 0zM1500 1462l-1084 -1462h-239l1087 1462h236zM496 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1573 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1252 320l58 231l22 74q-13 -20 -43 -58 t-211 -247h174z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M97 0zM1588 1h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347zM496 1462h207l-186 -876h-246l84 397 q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1500 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M133 0zM1633 1462l-1084 -1462h-239l1087 1462h236zM1634 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1313 320l58 231l22 74q-13 -20 -43 -58t-211 -247h174zM854 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209 t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M678 606l-14 -78q-19 -105 -76.5 -180t-169.5 -151q-122 -83 -156.5 -126t-34.5 -98q0 -118 133 -118q50 0 106.5 16t201.5 84l92 -221q-221 -125 -445 -125q-177 0 -280 87.5t-103 244.5q0 82 28.5 148.5t83.5 124t189 146.5q93 62 128 106.5t51 106.5l8 33h258z M772 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 86 54.5 140t143.5 54q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM965 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM735 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1235 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z " />
+<glyph unicode="&#xc3;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM999 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5 t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM516 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM918 1720q0 78 42 118t120 40 q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1087 1567q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170z M930 1565q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1833" d="M1593 0h-817l74 348h-426l-219 -348h-328l922 1462h1104l-54 -254h-512l-67 -321h477l-55 -254h-478l-79 -377h512zM905 608l127 600h-80l-364 -600h317z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1253" d="M123 0zM905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z M825 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM906 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM608 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM1177 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM438 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM840 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5 t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xcc;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM667 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM414 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM937 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcf;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM222 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM624 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l125 596h-141l55 254h139l131 612h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-75 -358h237l-55 -254h-238l-71 -340h106z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1546" d="M53 0zM1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274zM1114 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36 t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1053 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM753 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1308 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1071 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM585 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM987 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-180 0 -304 71l-108 -137l-154 115l121 151q-98 138 -98 357q0 265 99 487.5t273 341.5t402 119q182 0 305 -76l105 131l151 -117l-117 -145q91 -134 91 -340zM870 1233q-126 0 -229 -91.5t-160 -252.5t-57 -352 q0 -32 8 -101l596 754q-69 43 -158 43zM1133 930l-5 80l-589 -740q59 -37 153 -37q124 0 226 89t158.5 247.5t56.5 360.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1002 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM757 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5 t-194 -158.5h-209v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1284 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217 v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM565 1720q0 78 42.5 118t119.5 40q133 0 133 -108 q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM967 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM606 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1188" d="M1143 807q0 -243 -170.5 -378.5t-466.5 -135.5h-86l-62 -293h-305l309 1462h306l-50 -229h35q242 0 366 -106.5t124 -319.5zM475 547h55q139 0 222.5 66.5t83.5 185.5q0 180 -195 180h-74z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1350" d="M846 1567q208 0 331 -90t123 -240q0 -114 -49 -192t-178 -152q-73 -42 -96 -68.5t-23 -54.5q0 -23 22 -49.5t79 -69.5q107 -83 144.5 -150.5t37.5 -150.5q0 -170 -123.5 -270t-337.5 -100q-187 0 -297 61v240q128 -78 258 -78q101 0 148 33t47 86q0 40 -26.5 75 t-108.5 97q-94 72 -129 130t-35 126q0 84 45 145t162 127q66 37 104.5 76t38.5 96q0 62 -39.5 98.5t-124.5 36.5q-96 0 -156 -51.5t-85 -171.5l-254 -1219q-43 -198 -147 -288.5t-277 -90.5q-90 0 -160 25v242q61 -21 115 -21q133 0 170 178l254 1207q47 224 182 326 t385 102z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM869 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM598 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1120 1240h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM884 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1023 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM866 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z " />
+<glyph unicode="&#xe6;" horiz-adv-x="1786" d="M1206 -20q-109 0 -179.5 27t-117.5 87l-16 -94h-188l14 145h-6q-71 -88 -146.5 -126.5t-167.5 -38.5q-146 0 -227.5 109t-81.5 296q0 200 68.5 375.5t185 277t258.5 101.5q96 0 160.5 -38.5t114.5 -125.5h6l57 143h188l-18 -90q44 49 120.5 80t168.5 31 q157 0 246.5 -83.5t89.5 -221.5q0 -187 -167 -288.5t-476 -101.5h-52l-2 -19v-19q0 -96 55.5 -147.5t159.5 -51.5q66 0 152 23t162 63v-227q-179 -86 -361 -86zM518 223q72 0 134 68t99 184.5t37 243.5q0 80 -33 128t-102 48q-68 0 -128 -69t-95 -185.5t-35 -241.5 q0 -84 32.5 -130t90.5 -46zM1341 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95z" />
+<glyph unicode="&#xe7;" horiz-adv-x="989" d="M90 0zM506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z M653 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM849 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM528 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM1101 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM365 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM767 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xec;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM579 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM291 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="608" d="M36 0zM338 0h-301l237 1118h301zM845 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xef;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM126 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM528 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1182" d="M618 1309q-34 34 -124 80l118 186q134 -61 232 -139l237 131l76 -152l-192 -106q81 -107 113 -235t32 -279q0 -249 -69.5 -432.5t-203.5 -283t-323 -99.5q-216 0 -329 110t-113 316q0 165 64.5 301t180.5 212t265 76q83 0 151.5 -31t114.5 -94h6q-20 213 -117 310 l-231 -131l-88 147zM528 205q66 0 122.5 55.5t89 148.5t32.5 193q0 77 -38.5 122.5t-108.5 45.5q-73 0 -130 -53t-88.5 -143t-31.5 -197q0 -81 39 -126.5t114 -45.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1237" d="M37 0zM977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180zM909 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28 t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM571 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM1109 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM865 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM386 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM788 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf7;" d="M109 612v219h952v-219h-952zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1198" d="M1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-123 0 -225 53l-109 -135l-141 108l119 148q-72 107 -72 256q0 213 71.5 379.5t206.5 258t316 91.5q131 0 227 -56l70 88l145 -110l-84 -105q66 -107 66 -260zM662 903q-81 0 -144.5 -62.5t-98 -169.5t-34.5 -233 v-12l365 453q-35 24 -88 24zM543 215q114 0 193 133t79 318v16l-358 -444q11 -8 35.5 -15.5t50.5 -7.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM610 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209 v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM1143 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25 q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM411 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5 t-121 -43.5q-135 0 -135 110zM813 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM497 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M813 1139q150 0 232.5 -106.5t82.5 -301.5q0 -199 -69 -381t-182 -276t-250 -94q-178 0 -271 163h-8q-12 -159 -43 -295l-72 -340h-301l435 2048h301l-66 -307q-29 -131 -80 -280h8q131 170 283 170zM682 895q-71 0 -130 -65t-95.5 -184.5t-36.5 -246.5q0 -80 33.5 -128 t105.5 -48q69 0 129 65t97.5 183.5t37.5 247.5q0 88 -37.5 132t-103.5 44z" />
+<glyph unicode="&#xff;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM310 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5 q-135 0 -135 110zM712 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#x131;" horiz-adv-x="608" d="M338 0h-301l237 1118h301z" />
+<glyph unicode="&#x152;" horiz-adv-x="1845" d="M1606 0h-760q-93 -20 -180 -20q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q140 0 209 -23h809l-53 -254h-512l-68 -321h477l-55 -254h-477l-80 -377h512zM688 240q88 0 158 32l194 916q-62 39 -168 39q-121 0 -222 -91.5t-158.5 -251.5 t-57.5 -347q0 -147 66.5 -222t187.5 -75z" />
+<glyph unicode="&#x153;" horiz-adv-x="1806" d="M1198 -20q-116 0 -208 38.5t-138 106.5q-63 -68 -147 -106.5t-207 -38.5q-187 0 -297.5 117t-110.5 317q0 216 69 380.5t200 254.5t309 90q209 0 313 -160q154 160 399 160q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-476 -101.5h-51l-2 -21v-20q0 -91 51 -143.5 t147 -52.5q87 0 158 19t172 67v-227q-93 -46 -185.5 -66t-203.5 -20zM645 893q-71 0 -127 -60.5t-90.5 -176.5t-34.5 -242q0 -91 36.5 -140t109.5 -49q109 0 179 134.5t70 336.5q0 96 -37 146.5t-106 50.5zM1362 922q-88 0 -165.5 -78.5t-102.5 -196.5h45q155 0 241 48.5 t86 131.5q0 95 -104 95z" />
+<glyph unicode="&#x178;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM432 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM834 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5 q-135 0 -135 110z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1120 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M1034 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM877 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M866 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M41 436l49 230h852l-49 -230h-852z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M41 436l49 230h1835l-49 -230h-1835z" />
+<glyph unicode="&#x2018;" horiz-adv-x="440" d="M123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x2019;" horiz-adv-x="440" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285z" />
+<glyph unicode="&#x201a;" horiz-adv-x="569" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285z" />
+<glyph unicode="&#x201c;" horiz-adv-x="887" d="M569 961l-8 22q103 227 262 479h226q-97 -227 -195 -501h-285zM123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x201d;" horiz-adv-x="887" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285zM1032 1462l8 -22q-103 -227 -262 -479h-225q23 53 46.5 111t148.5 390h284z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1018" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285zM825 238l9 -23q-100 -221 -263 -479h-225q24 57 49 118.5t146 383.5h284z" />
+<glyph unicode="&#x2022;" horiz-adv-x="739" d="M104 686q0 106 42.5 194t120 136.5t182.5 48.5q120 0 182.5 -67t62.5 -191q0 -177 -91.5 -277t-248.5 -100q-117 0 -183.5 67t-66.5 189z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1706" d="M25 0zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM586 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM1147 115q0 90 53.5 144t150.5 54 q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="664" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18z" />
+<glyph unicode="&#x203a;" horiz-adv-x="664" d="M592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#x2044;" horiz-adv-x="256" d="M791 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M776 737h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM455 905l58 231l22 74q-13 -20 -43 -58t-211 -247h174z" />
+<glyph unicode="&#x20ac;" d="M899 1237q-97 0 -176 -74.5t-135 -212.5h348l-39 -176h-360q-11 -34 -25 -115h299l-37 -178h-280q0 -120 44.5 -181.5t147.5 -61.5q133 0 283 63v-258q-126 -63 -330 -63q-446 0 -446 501h-152l37 178h127q9 67 22 115h-125l39 176h135q87 252 250.5 393.5t374.5 141.5 q100 0 179 -23t165 -80l-125 -223q-87 49 -131 63.5t-90 14.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M471 741h-168v572h-197v149h564v-149h-199v-572zM1047 741l-166 529h-7l5 -111v-418h-164v721h248l159 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-141z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1217" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000..ed760c0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000..0c8a0ae
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000..e1075dc
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansitalic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM870 0h-168l234 1096h168zM983 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM868 0h-168l332 1556h168z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1815" d="M545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5 t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098q-43 -195 -123.5 -279t-210.5 -84z M1522 0h-168l233 1096h168zM1634 1376q0 54 32 90.5t83 36.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -65 24.5t-27 69.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1815" d="M1520 0h-168l331 1556h168zM545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5 t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098 q-43 -195 -123.5 -279t-210.5 -84z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="530" d="M555 1462l-274 -1059h-109q49 307 176 1059h207zM43 78q0 76 39.5 120t107.5 44q45 0 73 -27.5t28 -81.5q0 -68 -39 -115t-105 -47q-49 0 -76.5 28t-27.5 79z" />
+<glyph unicode="&#x22;" horiz-adv-x="791" d="M485 1462l-153 -528h-107l72 528h188zM834 1462l-154 -528h-107l72 528h189z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 899l-98 -340h285l-13 -129h-309l-125 -430h-139l129 430h-303l-127 -430h-133l121 430h-261l13 129h284l101 340h-277l13 127h301l123 436h139l-125 -436h305l127 436h133l-125 -436h264l-12 -127h-291zM500 559h303l96 340h-303z" />
+<glyph unicode="$" d="M942 492q0 -162 -112.5 -263t-309.5 -123l-49 -225h-133l49 223q-195 14 -315 72v154q82 -41 175.5 -63.5t166.5 -22.5l98 452q-139 49 -201.5 123.5t-62.5 188.5q0 159 108 255t299 113l39 176h133l-39 -178q159 -12 283 -76l-63 -135q-121 63 -248 72l-94 -440 q149 -55 212.5 -125t63.5 -178zM549 250q107 13 170 75t63 154q0 54 -33 96t-114 74zM627 1235q-108 -11 -167 -69t-59 -156q0 -53 34.5 -97.5t107.5 -70.5z" />
+<glyph unicode="%" horiz-adv-x="1624" d="M1468 1462l-1085 -1462h-152l1086 1462h151zM1284 772q-67 0 -119.5 -64.5t-84 -188.5t-31.5 -240q0 -173 106 -173q65 0 117 65t86.5 198.5t34.5 236.5q0 166 -109 166zM1532 621q0 -107 -31.5 -236t-82 -217.5t-121 -138t-156.5 -49.5q-110 0 -171 74.5t-61 219.5 q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -71.5t60 -204.5zM543 1358q-66 0 -119 -63t-85 -187.5t-32 -243.5q0 -172 107 -172q52 0 94 39.5t73.5 114t50.5 175t19 171.5q0 166 -108 166zM791 1206q0 -108 -32 -237.5t-82.5 -217.5t-120.5 -137t-157 -49 q-109 0 -170 75t-61 220q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -72t60 -205z" />
+<glyph unicode="&#x26;" horiz-adv-x="1372" d="M737 1348q-105 0 -163 -60t-58 -170q0 -120 82 -235q139 71 191 110t83 85t31 104q0 77 -42.5 121.5t-123.5 44.5zM471 119q87 0 168 33t195 124l-306 433q-128 -67 -184 -116t-85.5 -107.5t-29.5 -131.5q0 -106 66.5 -170.5t175.5 -64.5zM66 342q0 148 90 257.5 t303 211.5q-103 165 -103 309q0 164 106 264.5t281 100.5q149 0 236.5 -79t87.5 -212q0 -78 -32.5 -137t-87.5 -108t-127.5 -90t-153.5 -83l278 -389q127 110 199 295h168q-101 -236 -283 -412l203 -270h-201l-117 166q-120 -100 -230 -143t-247 -43q-168 0 -269 96 t-101 266z" />
+<glyph unicode="'" horiz-adv-x="444" d="M485 1462l-153 -528h-107l72 528h188z" />
+<glyph unicode="(" horiz-adv-x="584" d="M82 272q0 339 120 627t384 563h157q-246 -270 -371.5 -570t-125.5 -618q0 -339 114 -598h-131q-147 266 -147 596z" />
+<glyph unicode=")" horiz-adv-x="584" d="M500 864q0 -341 -121.5 -629.5t-382.5 -558.5h-156q496 551 496 1188q0 341 -113 598h131q146 -269 146 -598z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M854 1528l-123 -383l422 18l-8 -157l-393 47l180 -383l-166 -52l-113 406l-258 -344l-116 121l309 284l-373 109l55 154l371 -185l41 400z" />
+<glyph unicode="+" d="M516 651h-389v142h389v391h141v-391h390v-142h-390v-387h-141v387z" />
+<glyph unicode="," horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="-" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="." horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="/" horiz-adv-x="717" d="M893 1462l-813 -1462h-174l813 1462h174z" />
+<glyph unicode="0" d="M1092 1014q0 -295 -78.5 -539t-214 -369.5t-314.5 -125.5q-176 0 -270 127.5t-94 369.5q0 270 82 514.5t216.5 369t307.5 124.5q365 0 365 -471zM717 1341q-113 0 -209 -115.5t-155.5 -323t-59.5 -423.5q0 -172 50 -264t161 -92q115 0 209 114t150.5 328t56.5 453 q0 323 -203 323z" />
+<glyph unicode="1" d="M588 0h-172l196 913q59 261 88 359q-50 -53 -139 -111l-178 -110l-80 127l449 284h149z" />
+<glyph unicode="2" d="M911 0h-899l31 147l465 420q102 93 176.5 163.5t123 133t72 124t23.5 136.5q0 99 -60 157t-163 58q-77 0 -150.5 -28.5t-162.5 -96.5l-82 115q191 154 413 154q176 0 278.5 -88.5t102.5 -243.5q0 -111 -39.5 -204t-131 -197t-294.5 -281l-352 -307v-8h678z" />
+<glyph unicode="3" d="M1073 1159q0 -156 -101 -264.5t-280 -140.5v-9q124 -23 195 -106.5t71 -208.5q0 -133 -62 -234.5t-181 -158.5t-283 -57q-210 0 -385 79v164q94 -49 199 -75.5t190 -26.5q162 0 252 79.5t90 217.5q0 131 -79 198.5t-220 67.5h-131l31 143h139q165 0 274 87t109 227 q0 92 -58 146t-157 54q-80 0 -157 -27t-175 -93l-80 118q195 144 424 144q179 0 277 -87t98 -237z" />
+<glyph unicode="4" d="M1067 334h-233l-72 -334h-164l74 334h-656l29 158l834 978h196l-207 -983h232zM705 487q46 220 78 373t116 445h-8q-17 -29 -66.5 -96.5t-72.5 -96.5l-533 -625h486z" />
+<glyph unicode="5" d="M598 893q182 0 289.5 -104.5t107.5 -282.5q0 -161 -73 -283t-204 -182.5t-308 -60.5q-193 0 -330 79v164q164 -102 334 -102q191 0 298 96t107 268q0 126 -73.5 199.5t-204.5 73.5q-48 0 -97 -6.5t-139 -30.5l-74 57l197 684h668l-33 -153h-522l-127 -439q87 23 184 23z " />
+<glyph unicode="6" d="M133 424q0 209 60.5 415t163.5 351.5t246 219t327 73.5q111 0 184 -23l-35 -145q-68 22 -170 22q-212 0 -356.5 -149t-212.5 -443h8q59 79 146.5 126t193.5 47q154 0 244 -98.5t90 -270.5q0 -161 -66.5 -294.5t-180.5 -204t-261 -70.5q-182 0 -281.5 115t-99.5 329z M532 121q94 0 167.5 54t114 149t40.5 208q0 248 -221 248q-66 0 -128 -28.5t-110 -76t-72 -104.5t-24 -155q0 -137 60.5 -216t172.5 -79z" />
+<glyph unicode="7" d="M174 0l768 1313h-719l31 149h891l-27 -139l-764 -1323h-180z" />
+<glyph unicode="8" d="M741 1485q174 0 271.5 -86.5t97.5 -235.5q0 -129 -78 -225t-266 -176q127 -78 180 -165t53 -202q0 -122 -60 -217.5t-172.5 -146.5t-264.5 -51q-190 0 -298 98.5t-108 267.5q0 148 95 256t296 184q-95 69 -135.5 144.5t-40.5 171.5q0 111 54.5 198.5t153.5 136t222 48.5z M608 700q-185 -60 -261.5 -143.5t-76.5 -202.5q0 -107 69 -170t181 -63q139 0 222 74t83 196q0 99 -52 174t-165 135zM729 1341q-114 0 -182 -65.5t-68 -175.5q0 -82 39 -144t127 -116q161 60 228 131.5t67 173.5q0 90 -57.5 143t-153.5 53z" />
+<glyph unicode="9" d="M1067 1034q0 -194 -56 -406.5t-147.5 -360t-221.5 -217.5t-302 -70q-136 0 -242 34v158q134 -47 246 -47q202 0 327 141t189 441h-10q-51 -75 -132.5 -118.5t-180.5 -43.5q-169 0 -261 98.5t-92 288.5q0 153 64.5 280.5t180 199t259.5 71.5q180 0 279.5 -114.5 t99.5 -334.5zM682 1341q-150 0 -241 -113t-91 -290q0 -124 54.5 -190t162.5 -66q76 0 140 28.5t108.5 81.5t65 114t20.5 151q0 131 -59 207.5t-160 76.5z" />
+<glyph unicode=":" horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode=";" horiz-adv-x="518" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode="&#x3c;" d="M1040 242l-919 422v98l919 479v-149l-747 -371l747 -328v-151z" />
+<glyph unicode="=" d="M127 858v139h920v-139h-920zM127 444v142h920v-142h-920z" />
+<glyph unicode="&#x3e;" d="M121 393l745 328l-745 371v149l919 -479v-98l-919 -422v151z" />
+<glyph unicode="?" horiz-adv-x="874" d="M260 403q22 130 72.5 213.5t165.5 174.5q128 100 168 144t63 94t23 112q0 93 -51.5 143.5t-147.5 50.5q-81 0 -155 -25.5t-140 -56.5l-61 129q92 51 192 76t182 25q167 0 259 -84t92 -238q0 -123 -65.5 -226.5t-225.5 -223.5q-125 -91 -169 -147.5t-67 -160.5h-135z M158 74q0 77 40 122.5t111 45.5q44 0 70.5 -26t26.5 -79q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="@" horiz-adv-x="1735" d="M1679 852q0 -179 -55 -324t-155 -227t-222 -82q-197 0 -213 184h-8q-111 -184 -291 -184q-115 0 -180.5 75.5t-65.5 209.5q0 157 68 284t188.5 199t260.5 72q65 0 127.5 -12t150.5 -48q-64 -242 -98 -368t-31 -172q0 -117 102 -117q78 0 141.5 67t100.5 183.5t37 243.5 q0 239 -128 367t-370 128q-228 0 -406.5 -107t-277 -295.5t-98.5 -416.5q0 -270 143.5 -418.5t409.5 -148.5q197 0 420 86v-127q-219 -90 -443 -90q-314 0 -494.5 184.5t-180.5 505.5q0 261 126.5 485.5t343.5 347.5t486 123q191 0 329 -75.5t210.5 -213.5t72.5 -319z M985 938q-94 0 -174 -55t-126 -153t-46 -212q0 -93 33 -134.5t98 -41.5q187 0 272 315l70 258q-63 23 -127 23z" />
+<glyph unicode="A" horiz-adv-x="1137" d="M813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394z" />
+<glyph unicode="B" horiz-adv-x="1225" d="M770 1462q432 0 432 -336q0 -141 -87 -238t-245 -126v-10q115 -32 176.5 -110.5t61.5 -188.5q0 -212 -152 -332.5t-407 -120.5h-463l309 1462h375zM434 836h248q156 0 249 73t93 199q0 104 -66.5 155.5t-209.5 51.5h-211zM287 145h266q181 0 278 80.5t97 227.5 q0 116 -74.5 177.5t-214.5 61.5h-236z" />
+<glyph unicode="C" horiz-adv-x="1198" d="M942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69z" />
+<glyph unicode="D" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l309 1462h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-250 -1168h162z" />
+<glyph unicode="E" horiz-adv-x="1047" d="M821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565z" />
+<glyph unicode="F" horiz-adv-x="967" d="M258 0h-172l309 1462h735l-30 -153h-568l-110 -533h528l-32 -153h-529z" />
+<glyph unicode="G" horiz-adv-x="1386" d="M821 766h459l-154 -711q-216 -75 -419 -75q-264 0 -410.5 144.5t-146.5 403.5q0 269 101.5 489.5t281.5 343t399 122.5q117 0 219.5 -20t206.5 -64l-66 -152q-77 34 -165.5 59t-194.5 25q-169 0 -307.5 -101.5t-215.5 -283.5t-77 -407q0 -190 102.5 -299t286.5 -109 q154 0 260 39l96 444h-289z" />
+<glyph unicode="H" horiz-adv-x="1389" d="M1085 0h-167l143 688h-660l-145 -688h-170l309 1462h170l-131 -622h660l133 622h168z" />
+<glyph unicode="I" horiz-adv-x="559" d="M86 0l311 1462h168l-311 -1462h-168z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-166 -385q-105 0 -153 25l6 147q69 -20 145 -20q100 0 165.5 62.5t90.5 182.5l307 1450h170l-309 -1468q-79 -379 -422 -379z" />
+<glyph unicode="K" horiz-adv-x="1141" d="M1034 0h-186q-72 181 -146.5 359.5t-146.5 361.5l-174 -131l-125 -590h-170l309 1462h170l-151 -710l700 710h209l-639 -637z" />
+<glyph unicode="L" horiz-adv-x="971" d="M86 0l309 1462h170l-276 -1308h565l-33 -154h-735z" />
+<glyph unicode="M" horiz-adv-x="1714" d="M676 0l-166 1296h-8q-7 -72 -28.5 -197.5t-37.5 -199.5l-190 -899h-162l309 1462h244l149 -1204h9l659 1204h266l-303 -1462h-174q126 590 193 905.5t94 392.5h-6l-717 -1298h-131z" />
+<glyph unicode="N" horiz-adv-x="1438" d="M1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164z" />
+<glyph unicode="O" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5t70 403 q0 199 -94 310.5t-261 111.5z" />
+<glyph unicode="P" horiz-adv-x="1159" d="M1159 1085q0 -248 -164 -379t-481 -131h-135l-123 -575h-170l309 1462h330q214 0 324 -94.5t110 -282.5zM410 721h133q216 0 328 91t112 267q0 125 -69.5 180.5t-213.5 55.5h-163z" />
+<glyph unicode="Q" horiz-adv-x="1475" d="M874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q158 0 279 100t187.5 280.5t66.5 399.5q0 199 -94 310.5t-261 111.5zM725 -18l-17 -2h-16q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424 q0 -333 -139 -576t-375 -321l274 -358h-219z" />
+<glyph unicode="R" horiz-adv-x="1165" d="M385 608l-129 -608h-170l309 1462h320q446 0 446 -366q0 -348 -368 -449l239 -647h-186l-209 608h-252zM532 1313q-102 -494 -116 -559h168q193 0 297 85t104 244q0 121 -67.5 175.5t-219.5 54.5h-166z" />
+<glyph unicode="S" horiz-adv-x="1028" d="M913 424q0 -211 -140.5 -327.5t-395.5 -116.5q-106 0 -186.5 14.5t-151.5 48.5v170q162 -84 340 -84q162 0 257 75.5t95 207.5q0 78 -52.5 137.5t-195.5 140.5q-151 85 -209.5 170t-58.5 201q0 187 132 304.5t347 117.5q99 0 184.5 -19t180.5 -65l-66 -150 q-66 38 -148 60t-151 22q-134 0 -215.5 -69.5t-81.5 -188.5q0 -54 17 -92.5t54 -72.5t142 -95q147 -88 198.5 -138t78 -110.5t26.5 -140.5z" />
+<glyph unicode="T" horiz-adv-x="1020" d="M487 0h-172l277 1311h-406l33 151h985l-30 -151h-408z" />
+<glyph unicode="U" horiz-adv-x="1384" d="M1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170z" />
+<glyph unicode="V" horiz-adv-x="1122" d="M479 197q61 144 162 338l479 927h191l-781 -1462h-180l-162 1462h170l97 -930q20 -196 20 -335h4z" />
+<glyph unicode="W" horiz-adv-x="1745" d="M1257 0h-170l-49 965q-8 136 -8 282h-6q-25 -72 -61 -154.5t-504 -1092.5h-174l-62 1462h170l31 -901l2 -88q0 -98 -10 -258h6q89 243 156 383l405 864h178l43 -860q9 -153 9 -304l-1 -83h9q75 224 131 354l387 893h182z" />
+<glyph unicode="X" horiz-adv-x="1063" d="M956 0h-180l-213 641l-481 -641h-186l596 776l-263 686h172l203 -563l443 563h186l-555 -694z" />
+<glyph unicode="Y" horiz-adv-x="1030" d="M537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170z" />
+<glyph unicode="Z" horiz-adv-x="1087" d="M885 0h-901l28 137l924 1170h-655l32 155h858l-26 -139l-924 -1169h697z" />
+<glyph unicode="[" horiz-adv-x="586" d="M371 -324h-387l381 1786h387l-31 -141h-227l-318 -1503h227z" />
+<glyph unicode="\" horiz-adv-x="717" d="M375 1462l217 -1462h-154l-217 1462h154z" />
+<glyph unicode="]" horiz-adv-x="586" d="M-119 -182h225l320 1503h-227l30 141h389l-380 -1786h-388z" />
+<glyph unicode="^" horiz-adv-x="1059" d="M53 553l598 920h109l266 -920h-145l-201 747l-467 -747h-160z" />
+<glyph unicode="_" horiz-adv-x="807" d="M623 -324h-811l30 140h811z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M903 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1157" d="M639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233t-51 -310 q0 -114 47 -170.5t132 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1182" d="M545 -20q-97 0 -170.5 51t-110.5 139h-10l-70 -170h-125l330 1556h168q-51 -242 -78.5 -370.5t-75.5 -300.5h9q93 118 183.5 173.5t186.5 55.5q141 0 220 -99t79 -272q0 -209 -68.5 -386.5t-191 -277t-276.5 -99.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="c" horiz-adv-x="922" d="M506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63z" />
+<glyph unicode="d" horiz-adv-x="1182" d="M639 1114q194 0 281 -190h10q17 155 45 274l78 358h166l-330 -1556h-139l22 209h-8q-101 -125 -189 -177t-182 -52q-139 0 -217 98t-78 272q0 214 72 392t194.5 275t274.5 97zM449 119q94 0 194 93.5t158.5 239t58.5 296.5q0 111 -54 169t-157 58q-101 0 -187.5 -82.5 t-139 -232t-52.5 -314.5q0 -227 179 -227z" />
+<glyph unicode="e" horiz-adv-x="1010" d="M492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35z" />
+<glyph unicode="f" horiz-adv-x="641" d="M-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87z" />
+<glyph unicode="g" horiz-adv-x="1026" d="M1100 1096l-25 -107l-211 -24q41 -62 41 -158q0 -191 -116.5 -304.5t-311.5 -113.5q-55 0 -84 8q-139 -53 -139 -131q0 -41 33 -54.5t96 -21.5l117 -14q181 -22 262.5 -88t81.5 -194q0 -184 -146 -285t-411 -101q-194 0 -304 73.5t-110 207.5q0 105 72 182t233 131 q-78 41 -78 121q0 69 51 118.5t142 92.5q-63 32 -103 94.5t-40 145.5q0 194 119.5 318t305.5 124q78 0 154 -20h371zM35 -195q0 -77 65 -122t193 -45q182 0 284.5 63.5t102.5 179.5q0 62 -54 98t-184 50l-159 16q-120 -25 -184 -88t-64 -152zM313 680q0 -85 45 -129.5 t125 -44.5q79 0 138 42t90.5 115.5t31.5 159.5q0 82 -44 125t-126 43q-78 0 -136.5 -40.5t-91 -113t-32.5 -157.5z" />
+<glyph unicode="h" horiz-adv-x="1182" d="M729 0l148 692q18 94 18 135q0 148 -147 148q-89 0 -173.5 -59t-149 -171.5t-97.5 -271.5l-101 -473h-168l330 1556h168q-18 -82 -34.5 -159t-34 -156.5t-38 -166.5t-47.5 -189h11q94 123 185.5 176t191.5 53q131 0 202.5 -72t71.5 -204q0 -62 -23 -166 q-39 -193 -145 -672h-168z" />
+<glyph unicode="i" horiz-adv-x="520" d="M227 0h-168l234 1096h168zM340 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="j" horiz-adv-x="520" d="M-135 -492q-69 0 -123 21v141q61 -22 119 -22q125 0 168 205l264 1243h166l-266 -1258q-36 -171 -114.5 -250.5t-213.5 -79.5zM340 1376q0 56 32 91.5t83 35.5q86 0 86 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -64 24.5t-26 69.5z" />
+<glyph unicode="k" horiz-adv-x="999" d="M330 559l526 537h201l-469 -467l295 -629h-187l-235 524l-152 -123l-82 -401h-170l330 1556h170l-129 -602t-102 -395h4z" />
+<glyph unicode="l" horiz-adv-x="520" d="M225 0h-168l332 1556h168z" />
+<glyph unicode="m" horiz-adv-x="1786" d="M696 0l148 692q18 94 18 135q0 70 -31 109t-106 39q-84 0 -163.5 -60t-140 -171.5t-93.5 -268.5l-101 -475h-168l234 1096h139l-22 -203h10q87 119 173.5 171t178.5 52q113 0 174 -65t72 -181h8q86 125 183 185.5t196 60.5q127 0 196.5 -68t69.5 -198q0 -68 -22 -178 l-144 -672h-170l148 692q20 104 20 146q0 62 -34.5 99.5t-108.5 37.5q-81 0 -160 -58t-138.5 -164.5t-90.5 -252.5l-107 -500h-168z" />
+<glyph unicode="n" horiz-adv-x="1182" d="M729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170z" />
+<glyph unicode="o" horiz-adv-x="1149" d="M643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5z" />
+<glyph unicode="p" horiz-adv-x="1182" d="M545 -20q-97 0 -170 50t-113 140h-10l-4 -38q-3 -25 -10.5 -70t-114.5 -554h-166l336 1588h139l-26 -209h8q179 227 372 227q137 0 216 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295q0 -110 55.5 -168.5 t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="q" horiz-adv-x="1182" d="M641 1116q94 0 165.5 -50.5t108.5 -141.5h13l67 172h125l-336 -1588h-166l101 480q9 45 57 221h-8q-95 -121 -185 -175t-186 -54q-140 0 -219.5 97.5t-79.5 272.5q0 212 72.5 392t196 277t274.5 97zM449 119q92 0 190 92t158.5 237t60.5 300q0 105 -54.5 166t-152.5 61 q-101 0 -189 -84.5t-140 -233t-52 -311.5q0 -227 179 -227z" />
+<glyph unicode="r" horiz-adv-x="811" d="M752 1116q69 0 120 -14l-36 -150q-53 13 -105 13q-91 0 -170.5 -60t-139 -166.5t-87.5 -236.5l-107 -502h-168l234 1096h139l-22 -203h10q72 95 119 136.5t98.5 64t114.5 22.5z" />
+<glyph unicode="s" horiz-adv-x="877" d="M735 311q0 -156 -110.5 -243.5t-311.5 -87.5q-169 0 -305 69v158q70 -42 151 -65t150 -23q126 0 190 50t64 128q0 57 -35 96t-151 107q-130 73 -184 143t-54 166q0 138 101 222.5t266 84.5q171 0 330 -74l-54 -137l-56 25q-101 43 -220 43q-93 0 -146 -43.5t-53 -112.5 q0 -56 35.5 -96t146.5 -103q107 -60 153.5 -103t69.5 -92.5t23 -111.5z" />
+<glyph unicode="t" horiz-adv-x="664" d="M395 117q55 0 144 26v-129q-34 -14 -84 -24t-80 -10q-125 0 -191.5 59.5t-66.5 177.5q0 66 18 150l127 602h-172l14 73l185 78l125 228h98l-55 -252h274l-26 -127h-273l-129 -604q-18 -87 -18 -132q0 -56 29 -86t81 -30z" />
+<glyph unicode="u" horiz-adv-x="1182" d="M451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170z" />
+<glyph unicode="v" horiz-adv-x="946" d="M223 0l-125 1096h168l64 -613q24 -258 24 -362h6q127 275 179 371l325 604h178l-591 -1096h-228z" />
+<glyph unicode="w" horiz-adv-x="1468" d="M831 0l-32 602q-4 94 -4 172v156h-9l-50 -118l-83 -189l-291 -623h-202l-43 1096h164l18 -594v-88q0 -147 -8 -269h6q47 124 137 322l295 629h182l37 -594q6 -168 6 -262v-53l-2 -42h6q28 86 83 218.5t323 732.5h178l-506 -1096h-205z" />
+<glyph unicode="x" horiz-adv-x="979" d="M467 434l-346 -434h-195l475 565l-239 531h170l174 -412l330 412h194l-455 -539l252 -557h-168z" />
+<glyph unicode="y" horiz-adv-x="946" d="M98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136z" />
+<glyph unicode="z" horiz-adv-x="909" d="M690 0h-719l23 117l694 854h-479l27 125h657l-29 -140l-680 -831h531z" />
+<glyph unicode="{" horiz-adv-x="715" d="M442 -324q-141 0 -216.5 52.5t-75.5 171.5q0 52 20 141q33 146 51.5 227.5t14.5 102.5q0 143 -209 143l32 143q118 0 189.5 43.5t93.5 147.5l68 326q34 160 117.5 224t254.5 64h33l-31 -141q-105 0 -151 -36.5t-66 -123.5l-71 -321q-28 -123 -91 -184t-167 -78v-5 q151 -41 151 -213q0 -59 -18 -131l-47 -211q-15 -58 -15 -98q0 -53 36.5 -77.5t119.5 -24.5v-142h-23z" />
+<glyph unicode="|" d="M541 1556h139v-2052h-139v2052z" />
+<glyph unicode="}" horiz-adv-x="715" d="M285 1462q144 0 220.5 -52.5t76.5 -170.5q0 -48 -21 -141l-49 -219q-16 -68 -16 -111q0 -143 209 -143l-33 -144q-119 0 -190 -43t-93 -147l-67 -326q-36 -164 -119 -226.5t-264 -62.5h-13v142q115 0 167 36t71 123l72 322q25 117 88 179.5t170 80.5v6q-150 42 -150 211 q0 59 18 131l50 213q14 65 14 99q0 53 -40.5 77.5t-139.5 24.5l28 141h11z" />
+<glyph unicode="~" d="M348 713q-54 0 -118.5 -34.5t-114.5 -86.5v151q98 109 243 109q69 0 127 -14.5t144 -51.5q64 -27 112.5 -41t98.5 -14q55 0 119.5 33t115.5 88v-150q-100 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="530" d="M260 684h109l-176 -1057h-207zM250 950q0 76 40.5 122t110.5 46q44 0 70.5 -26t26.5 -80q0 -71 -40.5 -117.5t-105.5 -46.5q-48 0 -75 25.5t-27 76.5z" />
+<glyph unicode="&#xa2;" d="M582 -20h-125l43 215q-132 34 -203.5 137.5t-71.5 257.5q0 185 63.5 344t178.5 258.5t260 120.5l35 170h123l-37 -168q119 -9 217 -49l-47 -142q-109 52 -219 52q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -125 66 -198t184 -73q72 0 136 20t126 48v-143 q-123 -62 -286 -66z" />
+<glyph unicode="&#xa3;" d="M842 1481q184 0 336 -86l-66 -133q-146 79 -278 79q-213 0 -263 -237l-69 -326h370l-26 -127h-371l-47 -219q-22 -98 -66 -166.5t-124 -111.5h725l-33 -154h-953l27 141q205 46 258 289l47 221h-200l26 127h201l76 350q75 353 430 353z" />
+<glyph unicode="&#xa4;" d="M229 723q0 117 68 215l-129 129l92 92l127 -129q103 70 217 70t215 -70l129 129l92 -90l-129 -129q70 -104 70 -217q0 -119 -70 -217l127 -127l-90 -90l-129 127q-98 -68 -215 -68q-119 0 -217 70l-127 -127l-90 90l127 127q-68 96 -68 215zM358 723q0 -103 71.5 -174.5 t174.5 -71.5q104 0 177 71.5t73 174.5q0 104 -73 177t-177 73q-102 0 -174 -72.5t-72 -177.5z" />
+<glyph unicode="&#xa5;" d="M582 715l491 747h187l-533 -770h231l-28 -133h-297l-33 -160h297l-29 -133h-295l-57 -266h-154l56 266h-291l29 133h290l33 160h-291l29 133h225l-202 770h163z" />
+<glyph unicode="&#xa6;" d="M541 1556h139v-776h-139v776zM541 281h139v-777h-139v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M174 770q0 201 238 307q-119 70 -119 203q0 127 103.5 206t279.5 79q189 0 321 -68l-53 -123q-148 60 -266 60q-102 0 -162.5 -40.5t-60.5 -109.5q0 -49 38 -83.5t162 -90.5q100 -44 149 -83.5t75 -89.5t26 -114q0 -97 -61 -180t-172 -139q114 -71 114 -189 q0 -152 -114 -237.5t-318 -85.5q-176 0 -295 61v148q56 -34 136.5 -56t156.5 -22q133 0 204 44.5t71 129.5q0 48 -50.5 89t-152.5 87q-138 61 -194 130.5t-56 166.5zM514 1010q-82 -26 -135 -87.5t-53 -131.5t50.5 -117t198.5 -111q80 44 127.5 107t47.5 131 q0 60 -49.5 105.5t-186.5 103.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M457 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M928 1059q-125 0 -191.5 -87t-66.5 -241q0 -169 65 -249.5t193 -80.5q82 0 211 43v-122q-66 -28 -113 -38t-104 -10q-192 0 -297 119.5t-105 339.5q0 208 110 330.5t300 122.5q130 0 248 -60l-60 -120q-106 53 -190 53zM139 731q0 200 100 375t275 276t377 101 q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5 q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M498 1479q114 0 153 -103h6l37 90h86l-139 -665h-92l14 117h-4q-40 -56 -90 -93t-123 -37q-77 0 -126.5 60t-49.5 166q0 127 41.5 234.5t116.5 169t170 61.5zM381 891q61 0 112.5 49t86 137.5t34.5 167.5q0 62 -28.5 96.5t-85.5 34.5q-92 0 -154.5 -103t-62.5 -243 q0 -139 98 -139z" />
+<glyph unicode="&#xab;" horiz-adv-x="958" d="M88 584l391 374l78 -81l-297 -328l172 -387l-113 -49l-231 442v29zM483 541l367 405l86 -69l-283 -365l158 -350l-113 -49l-215 397v31z" />
+<glyph unicode="&#xac;" d="M1047 793v-529h-140v387h-780v142h920z" />
+<glyph unicode="&#xad;" horiz-adv-x="639" d="M55 469zM55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M139 731q0 200 100 375t275 276t377 101q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5 q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5zM1194 915q0 -78 -47.5 -141t-132.5 -98l227 -385h-149l-207 352h-113v-352h-127v880h229q163 0 241.5 -63t78.5 -193zM772 762h92q195 0 195 149q0 76 -47.5 107t-149.5 31h-90v-287z " />
+<glyph unicode="&#xaf;" horiz-adv-x="782" d="M1012 1556h-785l33 132h787z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M215 1171q0 128 90.5 220t220.5 92q83 0 155.5 -41.5t114.5 -114t42 -156.5q0 -128 -90.5 -218.5t-221.5 -90.5t-221 90.5t-90 218.5zM328 1171q0 -80 58 -138t140 -58q83 0 140 58.5t57 137.5q0 82 -57.5 140.5t-139.5 58.5q-80 0 -139 -58.5t-59 -140.5z" />
+<glyph unicode="&#xb1;" d="M516 643h-389v141h389v392h141v-392h390v-141h-390v-387h-141v387zM127 0v141h920v-141h-920z" />
+<glyph unicode="&#xb2;" horiz-adv-x="717" d="M657 586h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xb3;" horiz-adv-x="717" d="M549 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M532 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1194" d="M295 266q0 -147 147 -147q89 0 172 59t148.5 171t99.5 269l105 478h163l-233 -1096h-139l24 205h-12q-93 -121 -183 -173t-188 -52q-112 0 -163 96h-9q-11 -78 -22.5 -148t-83.5 -420h-164l336 1588h168l-148 -695q-18 -92 -18 -135z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1206 -260h-114v1661h-213v-1661h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="518" d="M170 587zM170 690q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M211 -276q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xb9;" horiz-adv-x="717" d="M537 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90z" />
+<glyph unicode="&#xba;" horiz-adv-x="688" d="M745 1219q0 -191 -88.5 -311t-240.5 -120q-113 0 -180.5 71t-67.5 196q0 117 42 215.5t117.5 153.5t174.5 55q117 0 180 -67t63 -193zM500 1376q-102 0 -160.5 -87.5t-58.5 -229.5q0 -85 38 -127.5t107 -42.5q94 0 152.5 88.5t58.5 232.5q0 166 -137 166z" />
+<glyph unicode="&#xbb;" horiz-adv-x="958" d="M872 485l-393 -370l-78 82l297 323l-172 391l113 50l233 -447v-29zM477 528l-368 -401l-86 70l282 360l-158 354l113 50l217 -402v-31z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1518" d="M123 0zM1362 1462l-1086 -1462h-153l1085 1462h154zM483 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1327 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1095 320q69 322 90 395 q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1518" d="M66 0zM427 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1305 1462l-1086 -1462h-153l1085 1462h154zM1343 1h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90 q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1565" d="M87 0zM517 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4zM1512 1462l-1086 -1462h-153l1085 1462h154zM1477 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1245 320q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbf;" horiz-adv-x="874" d="M657 680q-22 -130 -72 -212t-165 -175l-95 -75q-159 -127 -159 -275q0 -93 51.5 -144t147.5 -51q80 0 154 25.5t140 56.5l62 -129q-90 -48 -189 -74t-186 -26q-168 0 -259 83.5t-91 237.5q0 124 66 228t225 223q132 98 172.5 152.5t62.5 154.5h135zM760 1010 q0 -77 -40.5 -122.5t-111.5 -45.5q-43 0 -69.5 26t-26.5 78q0 71 40 118.5t107 47.5q47 0 74 -25.5t27 -76.5z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM863 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM679 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM1080 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27 z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM934 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18 t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5 t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM991 1585q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM887 1583 q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M1448 0h-737l98 465h-438l-293 -465h-197l938 1462h938l-33 -153h-565l-100 -469h528l-28 -150h-529l-115 -538h566zM840 621l147 688h-84l-434 -688h371z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1198" d="M150 0zM942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69zM758 -276 q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM898 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM657 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xca;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM1084 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xcc;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM593 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM412 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xce;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM808 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcf;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM265 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM629 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l135 649h-149l32 150h150l141 663h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-111 -516h330l-33 -150h-330l-106 -502h162z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1438" d="M84 0zM1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164zM1102 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5 t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1007 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM821 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1227 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1067 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM664 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1028 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd7;" d="M487 723l-319 321l98 99l320 -320l323 320l99 -96l-324 -324l322 -322l-97 -96l-323 320l-320 -318l-96 96z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-200 0 -332 96l-129 -160l-112 92l137 170q-106 136 -106 371q0 264 96 482t263.5 336t377.5 118q99 0 178.5 -27t151.5 -84l131 166l114 -92l-149 -184q48 -62 73 -156t25 -201zM874 1333q-157 0 -281 -101 t-192.5 -281t-68.5 -398q0 -135 41 -227l737 919q-90 88 -236 88zM1229 911q0 118 -33 205l-733 -911q91 -74 233 -74q152 0 272.5 97.5t190.5 279.5t70 403z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM991 1579h-104q-61 61 -128.5 154 t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM823 1606q56 60 125.5 151.5t106.5 149.5 h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM1217 1579h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM643 1716q0 46 28 79.5t74 33.5 q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1007 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM616 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xde;" horiz-adv-x="1159" d="M1106 829q0 -248 -164 -379t-483 -131h-133l-70 -319h-170l309 1462h170l-53 -256h160q213 0 323.5 -95t110.5 -282zM354 465h135q215 0 328 91t113 267q0 126 -70 181t-215 55h-166z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1182" d="M-133 -492q-69 0 -123 21v143q61 -22 111 -22q65 0 107 47.5t65 157.5l280 1314q43 200 156 299t307 99q162 0 252 -71t90 -196q0 -57 -21 -106.5t-61.5 -95t-178.5 -150.5q-110 -83 -110 -151q0 -56 95 -122q47 -34 101 -87.5t79.5 -110t25.5 -123.5 q0 -175 -108.5 -274.5t-292.5 -99.5q-175 0 -268 71v160q51 -41 118.5 -66.5t129.5 -25.5q113 0 181 58t68 159q0 40 -10.5 71t-33.5 59t-89 83q-88 69 -122.5 124t-34.5 115q0 53 18.5 96t49.5 78.5t124 104.5q80 56 111 87.5t48 65t17 70.5q0 64 -52.5 100.5t-141.5 36.5 q-119 0 -186 -62.5t-95 -190.5l-274 -1303q-40 -189 -121 -276t-211 -87z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM824 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM600 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM1005 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM856 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM454 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM818 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM951 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM847 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1669" d="M1165 -20q-108 0 -189.5 39.5t-121.5 119.5l-31 -139h-114l26 209h-8q-109 -132 -191.5 -180.5t-177.5 -48.5q-122 0 -191 99t-69 269q0 206 70.5 385t191.5 281t263 102q82 0 145 -48.5t102 -143.5h11l67 172h109l-31 -146q123 166 332 166q119 0 192.5 -68t73.5 -184 q0 -182 -166.5 -283.5t-472.5 -101.5h-39l-4 -80q0 -131 62.5 -204.5t193.5 -73.5q55 0 116.5 16.5t178.5 67.5v-150q-164 -75 -328 -75zM412 119q95 0 188.5 91.5t153 240.5t59.5 299q0 103 -45.5 164t-122.5 61q-99 0 -187 -86.5t-138 -231.5t-50 -309q0 -114 37 -171.5 t105 -57.5zM1325 973q-117 0 -211 -94.5t-141 -260.5h14q226 0 348.5 58.5t122.5 169.5q0 61 -35 94t-98 33z" />
+<glyph unicode="&#xe7;" horiz-adv-x="922" d="M98 0zM506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63zM592 -276q0 -98 -81 -157 t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM777 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM585 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xea;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM966 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM413 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM777 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xec;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM492 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM324 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xee;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM708 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xef;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM161 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM525 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1165" d="M676 1343q-66 58 -146 113l95 117q118 -84 188 -154l260 146l64 -105l-240 -133q87 -115 126.5 -240.5t39.5 -269.5q0 -253 -71.5 -447t-203 -292t-311.5 -98q-182 0 -284.5 104t-102.5 289q0 160 67.5 298t187 217t267.5 79q105 0 181.5 -45.5t111.5 -124.5l6 2v17 q0 136 -36.5 240t-110.5 197l-270 -149l-56 108zM487 121q107 0 190 56t134 168t51 226q0 118 -65.5 187t-178.5 69q-109 0 -189 -57.5t-123.5 -161t-43.5 -231.5q0 -126 57.5 -191t167.5 -65z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1182" d="M59 0zM729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170zM871 1243 q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM798 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM589 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM997 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM844 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM433 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM797 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf7;" d="M127 651v142h920v-142h-920zM475 373q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90zM475 1071q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1149" d="M1047 705q0 -189 -69.5 -360t-191.5 -266t-276 -95q-146 0 -246 65l-98 -125l-105 82l109 135q-68 103 -68 265q0 194 73.5 361t195.5 255t272 88q146 0 252 -68l104 129l105 -79l-119 -129q62 -97 62 -258zM647 971q-108 0 -195.5 -73t-137.5 -202t-50 -280 q0 -92 17 -137l518 645q-54 47 -152 47zM885 688q0 84 -13 119l-514 -641q57 -45 158 -45q103 0 188.5 71.5t133 200.5t47.5 295z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM800 1241h-104q-61 61 -128.5 154t-95.5 153v21 h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM636 1268q56 60 125.5 151.5t106.5 149.5h190 v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM1024 1241h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM457 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xfd;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM500 1268q56 60 125.5 151.5t106.5 149.5h190v-21 q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1182" d="M545 -20q-98 0 -172 51t-113 139h-10q-8 -104 -25 -176l-102 -486h-166l432 2048h168q-95 -441 -115 -522t-39 -149h9q101 125 189 177t183 52q139 0 218 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="&#xff;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM335 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM699 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#x131;" horiz-adv-x="520" d="M227 0h-168l234 1096h168z" />
+<glyph unicode="&#x152;" horiz-adv-x="1751" d="M1524 0h-674q-78 -20 -158 -20q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q152 0 237 -23h709l-31 -153h-565l-100 -469h528l-31 -150h-528l-115 -538h565zM696 131q69 0 123 19l246 1161q-76 22 -191 22q-157 0 -281 -101t-192.5 -281t-68.5 -398 q0 -199 98 -310.5t266 -111.5z" />
+<glyph unicode="&#x153;" horiz-adv-x="1769" d="M1251 -20q-270 0 -356 225q-69 -107 -171.5 -164t-225.5 -57q-184 0 -292 114t-108 308q0 193 75 360t201 255.5t281 88.5q270 0 359 -225q75 109 177.5 170t221.5 61q139 0 217 -65.5t78 -186.5q0 -183 -164.5 -284t-468.5 -101h-41l-4 -80q0 -131 61.5 -204.5 t190.5 -73.5q75 0 145 24.5t150 59.5v-150q-162 -75 -326 -75zM649 969q-109 0 -196 -73t-135 -202t-48 -284q0 -141 62 -214t172 -73q177 0 278 160.5t101 427.5q0 124 -59.5 191t-174.5 67zM1413 973q-125 0 -220.5 -94.5t-139.5 -260.5h18q231 0 351 61t120 177 q0 48 -32 82.5t-97 34.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM452 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM816 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22 t-23.5 62z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1014 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M989 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM885 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M838 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2011;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2012;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M55 469l35 160h823l-34 -160h-824z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M55 469l35 160h1806l-34 -160h-1807z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188z" />
+<glyph unicode="&#x201a;" horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="&#x201c;" horiz-adv-x="719" d="M500 961l-8 22q80 181 272 479h127q-162 -379 -203 -501h-188zM129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x201d;" horiz-adv-x="719" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188zM885 1462l10 -22q-94 -206 -274 -479h-127q57 126 115.5 272.5t86.5 228.5h189z" />
+<glyph unicode="&#x201e;" horiz-adv-x="858" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM659 238l9 -23q-95 -205 -271 -479h-129q140 316 203 502h188z" />
+<glyph unicode="&#x2022;" horiz-adv-x="774" d="M199 684q0 145 73.5 231t198.5 86q92 0 139 -49t47 -141q0 -141 -74 -230t-202 -89q-89 0 -135.5 49.5t-46.5 142.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1563" d="M43 0zM563 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM1085 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM43 74q0 77 40.5 122.5 t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="580" d="M88 578l391 380l78 -81l-297 -334l172 -381l-113 -49l-231 436v29z" />
+<glyph unicode="&#x203a;" horiz-adv-x="580" d="M492 496l-392 -381l-77 82l296 333l-172 381l113 50l232 -437v-28z" />
+<glyph unicode="&#x2044;" horiz-adv-x="268" d="M752 1462l-1086 -1462h-153l1085 1462h154z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="717" d="M713 788h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM481 905q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#x20ac;" d="M928 1329q-140 0 -254 -99t-189 -298h426l-26 -133h-441q-21 -65 -32 -164h381l-29 -131h-361q0 -373 297 -373q123 0 256 55v-147q-127 -59 -278 -59q-212 0 -328.5 133.5t-116.5 378.5v12h-170l27 131h154q8 80 30 164h-151l27 133h159q97 267 259.5 408t369.5 141 q89 0 160 -21.5t141 -70.5l-80 -138q-113 78 -231 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M438 741h-121v617h-196v104h516v-104h-199v-617zM1014 741l-189 551h-6q4 -52 4 -121v-430h-118v721h180l182 -557l193 557h170v-721h-121v430q0 73 4 121h-6l-197 -551h-96z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1182" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000..ff652e6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000..1486840
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000..11a472c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1087h99v-1087zM782 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71 t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1556h99v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1087h99v-1087zM1397 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1556h99v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="492" d="M276 377h-61l-29 1085h119zM164 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x22;" horiz-adv-x="723" d="M260 1462l-33 -528h-61l-33 528h127zM590 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M967 928l-76 -398h303v-79h-320l-86 -451h-90l88 451h-360l-86 -451h-88l86 451h-283v79h299l76 398h-297v80h311l86 454h91l-89 -454h365l88 454h86l-88 -454h285v-80h-301zM440 530h363l78 398h-363z" />
+<glyph unicode="$" d="M991 440q0 -133 -99 -217t-274 -106v-236h-81v232q-92 2 -200.5 22.5t-172.5 50.5v103q75 -36 179.5 -61t193.5 -25v508q-145 44 -215 88t-102 104t-32 146q0 124 94.5 208.5t254.5 104.5v192h81v-190q197 -9 351 -72l-33 -90q-141 62 -318 72v-486q213 -66 293 -144 t80 -204zM881 444q0 85 -63 140.5t-200 95.5v-471q122 13 192.5 75t70.5 160zM297 1049q0 -86 57 -141t183 -93v453q-119 -16 -179.5 -76t-60.5 -143z" />
+<glyph unicode="%" horiz-adv-x="1653" d="M211 1026q0 -186 45 -279.5t141 -93.5q193 0 193 373q0 184 -49.5 276.5t-143.5 92.5q-96 0 -141 -92.5t-45 -276.5zM688 1026q0 -226 -75 -343.5t-216 -117.5q-133 0 -208.5 120.5t-75.5 340.5q0 223 72 340t212 117q139 0 215 -120.5t76 -336.5zM1063 438 q0 -185 45 -277.5t141 -92.5q193 0 193 370q0 369 -193 369q-96 0 -141 -91.5t-45 -277.5zM1540 438q0 -226 -74 -343.5t-215 -117.5q-136 0 -211 121.5t-75 339.5q0 225 73.5 341t212.5 116q137 0 213 -120t76 -337zM1280 1462l-811 -1462h-96l811 1462h96z" />
+<glyph unicode="&#x26;" horiz-adv-x="1460" d="M123 371q0 138 73.5 235t274.5 205l-75 82q-66 71 -98 139t-32 142q0 143 95.5 227t256.5 84q155 0 245.5 -81t90.5 -224q0 -105 -70 -192.5t-253 -194.5l452 -457q61 72 104 157t75 201h96q-63 -246 -209 -426l266 -268h-135l-193 197q-92 -90 -164 -131.5t-157.5 -63.5 t-194.5 -22q-209 0 -328.5 103t-119.5 288zM578 70q128 0 234.5 43.5t209.5 146.5l-483 485q-136 -72 -196.5 -122.5t-88 -109.5t-27.5 -138q0 -143 93 -224t258 -81zM373 1176q0 -79 40 -146t152 -174q159 85 221 159t62 169q0 94 -62 152.5t-168 58.5q-114 0 -179.5 -58 t-65.5 -161z" />
+<glyph unicode="'" horiz-adv-x="393" d="M260 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="(" horiz-adv-x="557" d="M82 561q0 265 77.5 496t223.5 405h113q-148 -182 -227 -412.5t-79 -486.5q0 -483 304 -887h-111q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="557" d="M475 561q0 -263 -77.5 -490t-223.5 -395h-111q304 404 304 887q0 257 -79 487.5t-227 411.5h113q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1128" d="M631 1556l-37 -405l405 104l21 -131l-395 -39l247 -340l-124 -71l-191 379l-180 -379l-125 71l242 340l-390 39l19 131l401 -104l-39 405h146z" />
+<glyph unicode="+" d="M625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="," horiz-adv-x="440" d="M295 238l12 -21q-75 -265 -174 -481h-65q77 275 110 502h117z" />
+<glyph unicode="-" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="." horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="/" horiz-adv-x="698" d="M674 1462l-545 -1462h-104l544 1462h105z" />
+<glyph unicode="0" d="M1055 735q0 -385 -117.5 -570t-355.5 -185q-229 0 -348 190.5t-119 564.5q0 382 115.5 566t351.5 184q231 0 352 -190.5t121 -559.5zM223 735q0 -340 89 -502.5t270 -162.5q189 0 275.5 168t86.5 497q0 324 -86.5 492t-275.5 168t-274 -168t-85 -492z" />
+<glyph unicode="1" d="M682 0h-98v1065q0 145 12 301q-15 -15 -31 -29t-309 -243l-57 71l397 297h86v-1462z" />
+<glyph unicode="2" d="M1028 0h-915v88l389 406q164 170 230 260t97 172t31 172q0 131 -86 213t-223 82q-183 0 -350 -133l-54 69q183 154 406 154q191 0 300.5 -102t109.5 -281q0 -145 -73.5 -280.5t-268.5 -334.5l-375 -385v-4h782v-96z" />
+<glyph unicode="3" d="M979 1118q0 -136 -85.5 -229t-229.5 -119v-6q176 -22 268 -112t92 -242q0 -205 -139.5 -317.5t-401.5 -112.5q-223 0 -389 83v99q84 -44 188.5 -69t196.5 -25q221 0 332 89.5t111 252.5q0 145 -113.5 223t-333.5 78h-158v96h160q182 0 288.5 86.5t106.5 234.5 q0 122 -86.5 195.5t-226.5 73.5q-109 0 -199 -30.5t-202 -104.5l-49 67q85 71 205 112.5t243 41.5q202 0 312 -95.5t110 -269.5z" />
+<glyph unicode="4" d="M1141 373h-252v-373h-94v373h-752v67l725 1030h121v-1011h252v-86zM795 459v418q0 302 14 507h-8q-20 -37 -123 -188l-516 -737h633z" />
+<glyph unicode="5" d="M537 879q234 0 368.5 -113t134.5 -311q0 -225 -140 -350t-386 -125q-109 0 -207 21.5t-164 61.5v103q108 -55 192 -76.5t179 -21.5q192 0 308 101.5t116 274.5q0 163 -113 256t-307 93q-130 0 -272 -39l-60 39l58 669h704v-96h-610l-45 -516q156 29 244 29z" />
+<glyph unicode="6" d="M131 623q0 285 77.5 479.5t220 288.5t343.5 94q94 0 172 -23v-88q-73 27 -176 27q-247 0 -384.5 -178t-154.5 -518h13q76 98 174 148t207 50q205 0 320.5 -117t115.5 -323q0 -224 -121.5 -353.5t-327.5 -129.5q-222 0 -350.5 169.5t-128.5 473.5zM610 68q164 0 255 103 t91 294q0 168 -90 262t-245 94q-102 0 -189.5 -45t-139.5 -119.5t-52 -152.5q0 -111 49.5 -213.5t134 -162.5t186.5 -60z" />
+<glyph unicode="7" d="M334 0l602 1366h-827v96h946v-73l-604 -1389h-117z" />
+<glyph unicode="8" d="M582 1487q186 0 299.5 -95t113.5 -257q0 -112 -70.5 -198t-228.5 -159q192 -79 270 -173t78 -228q0 -181 -126.5 -289t-339.5 -108q-221 0 -339 101t-118 294q0 131 83 230t257 169q-161 76 -227 160.5t-66 202.5q0 105 53 184.5t148.5 122.5t212.5 43zM223 360 q0 -138 93.5 -214t261.5 -76q164 0 264 80.5t100 218.5q0 124 -78.5 201.5t-302.5 162.5q-184 -71 -261 -157t-77 -216zM580 1397q-141 0 -226.5 -69.5t-85.5 -190.5q0 -70 31.5 -123.5t91 -97t199.5 -101.5q163 63 234 139t71 183q0 120 -84.5 190t-230.5 70z" />
+<glyph unicode="9" d="M1036 842q0 -288 -75.5 -482t-220 -287t-349.5 -93q-104 0 -192 26v86q43 -14 103.5 -21.5t92.5 -7.5q247 0 387 178.5t156 520.5h-12q-73 -96 -174 -147.5t-211 -51.5q-203 0 -316.5 112t-113.5 318q0 220 124.5 356t323.5 136q144 0 252 -75.5t166.5 -221.5t58.5 -346z M559 1397q-158 0 -252 -106.5t-94 -291.5q0 -174 87 -264t249 -90q101 0 188.5 45t139 119.5t51.5 151.5q0 117 -46.5 219t-130 159.5t-192.5 57.5z" />
+<glyph unicode=":" horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode=";" horiz-adv-x="487" d="M303 238l12 -21q-75 -265 -174 -481h-65q29 97 62 245.5t48 256.5h117zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#x3c;" d="M1059 266l-948 416v61l948 474v-95l-823 -405l823 -355v-96z" />
+<glyph unicode="=" d="M111 885v82h948v-82h-948zM111 477v82h948v-82h-948z" />
+<glyph unicode="&#x3e;" d="M111 362l823 355l-823 405v95l948 -474v-61l-948 -416v96z" />
+<glyph unicode="?" horiz-adv-x="862" d="M293 377v37q0 123 37.5 201t138.5 167l91 79q72 61 103 121t31 138q0 127 -83.5 202t-219.5 75q-79 0 -148 -17.5t-149 -56.5l-37 80q110 48 184.5 64t153.5 16q183 0 288 -98.5t105 -270.5q0 -68 -18 -119t-50.5 -94.5t-78.5 -84t-102 -87.5q-64 -54 -98.5 -98.5 t-50 -93.5t-15.5 -146v-14h-82zM260 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="@" horiz-adv-x="1815" d="M1702 725q0 -228 -90.5 -366t-245.5 -138q-89 0 -144.5 54t-64.5 147h-4q-43 -100 -124 -150.5t-189 -50.5q-148 0 -229 96.5t-81 270.5q0 202 120.5 330.5t314.5 128.5q138 0 286 -41l-22 -464v-30q0 -104 35 -156.5t116 -52.5q103 0 168.5 116.5t65.5 303.5 q0 194 -79 340t-225.5 224.5t-334.5 78.5q-230 0 -405.5 -99.5t-270 -281.5t-94.5 -418q0 -322 167 -497.5t474 -175.5q93 0 188.5 18t231.5 70v-99q-203 -80 -414 -80q-349 0 -544 200.5t-195 557.5q0 256 108.5 460.5t307 317.5t448.5 113q215 0 380.5 -89t255 -254.5 t89.5 -383.5zM633 590q0 -143 55 -215t174 -72q255 0 273 346l16 291q-79 27 -193 27q-149 0 -237 -102.5t-88 -274.5z" />
+<glyph unicode="A" horiz-adv-x="1229" d="M911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174z" />
+<glyph unicode="B" horiz-adv-x="1284" d="M207 1462h401q271 0 398 -92t127 -278q0 -127 -77.5 -211.5t-226.5 -108.5v-6q175 -26 257.5 -110.5t82.5 -235.5q0 -202 -134 -311t-380 -109h-448v1462zM309 811h322q206 0 299.5 68.5t93.5 214.5t-105.5 212t-314.5 66h-295v-561zM309 721v-631h344q406 0 406 330 q0 301 -428 301h-322z" />
+<glyph unicode="C" horiz-adv-x="1272" d="M831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80z" />
+<glyph unicode="D" horiz-adv-x="1446" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v1462h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-1282h242q655 0 655 651z" />
+<glyph unicode="E" horiz-adv-x="1130" d="M1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94z" />
+<glyph unicode="F" horiz-adv-x="1028" d="M309 0h-102v1462h801v-94h-699v-620h660v-95h-660v-653z" />
+<glyph unicode="G" horiz-adv-x="1481" d="M782 737h539v-667q-212 -90 -477 -90q-346 0 -530.5 195.5t-184.5 553.5q0 223 91.5 395.5t262 266.5t391.5 94q239 0 429 -88l-41 -92q-190 88 -394 88q-289 0 -458.5 -178.5t-169.5 -481.5q0 -330 161 -496.5t473 -166.5q202 0 343 57v514h-435v96z" />
+<glyph unicode="H" horiz-adv-x="1473" d="M1266 0h-103v719h-854v-719h-102v1462h102v-649h854v649h103v-1462z" />
+<glyph unicode="I" horiz-adv-x="516" d="M207 0v1462h102v-1462h-102z" />
+<glyph unicode="J" horiz-adv-x="506" d="M-33 -369q-92 0 -151 27v88q78 -20 149 -20q242 0 242 264v1472h102v-1462q0 -369 -342 -369z" />
+<glyph unicode="K" horiz-adv-x="1190" d="M1190 0h-125l-561 772l-195 -172v-600h-102v1462h102v-760l162 162l573 598h130l-599 -618z" />
+<glyph unicode="L" horiz-adv-x="1051" d="M207 0v1462h102v-1366h697v-96h-799z" />
+<glyph unicode="M" horiz-adv-x="1767" d="M850 0l-545 1350h-8q8 -124 8 -254v-1096h-98v1462h158l518 -1286h6l518 1286h154v-1462h-103v1108q0 116 12 240h-8l-547 -1348h-65z" />
+<glyph unicode="N" horiz-adv-x="1477" d="M1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462z" />
+<glyph unicode="O" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483z" />
+<glyph unicode="P" horiz-adv-x="1198" d="M1087 1042q0 -212 -144 -325t-408 -113h-226v-604h-102v1462h358q522 0 522 -420zM309 692h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="Q" horiz-adv-x="1565" d="M1436 733q0 -294 -126 -486.5t-349 -246.5l333 -348h-166l-282 330l-33 -2h-31q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5 t-401.5 168.5q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="R" horiz-adv-x="1217" d="M309 637v-637h-102v1462h348q272 0 402 -100.5t130 -302.5q0 -147 -77.5 -248t-235.5 -145l397 -666h-122l-377 637h-363zM309 725h279q185 0 287 82.5t102 243.5q0 167 -100 243t-326 76h-242v-645z" />
+<glyph unicode="S" horiz-adv-x="1116" d="M1014 377q0 -183 -134.5 -290t-357.5 -107q-268 0 -411 59v102q158 -67 403 -67q180 0 285.5 82.5t105.5 216.5q0 83 -35 137.5t-114 99.5t-232 97q-224 77 -309.5 166.5t-85.5 238.5q0 164 128.5 267.5t330.5 103.5q206 0 387 -78l-37 -88q-182 76 -348 76 q-162 0 -258 -75t-96 -204q0 -81 29.5 -133t96.5 -93.5t230 -99.5q171 -59 257 -114.5t125.5 -126t39.5 -170.5z" />
+<glyph unicode="T" horiz-adv-x="1073" d="M588 0h-103v1366h-475v96h1053v-96h-475v-1366z" />
+<glyph unicode="U" horiz-adv-x="1473" d="M1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102z" />
+<glyph unicode="V" horiz-adv-x="1182" d="M1071 1462h111l-547 -1462h-90l-545 1462h109l368 -995q84 -225 113 -338q20 75 79 233z" />
+<glyph unicode="W" horiz-adv-x="1827" d="M1372 0h-84l-321 1128q-40 139 -60 228q-16 -87 -45.5 -200t-322.5 -1156h-86l-402 1462h107l256 -942q15 -57 28 -105.5t23.5 -91t19 -82t15.5 -79.5q24 136 102 413l250 887h113l293 -1018q51 -176 73 -284q13 72 33.5 153t308.5 1149h103z" />
+<glyph unicode="X" horiz-adv-x="1102" d="M1102 0h-117l-432 682l-440 -682h-113l492 762l-447 700h115l395 -626l401 626h109l-453 -698z" />
+<glyph unicode="Y" horiz-adv-x="1081" d="M543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117z" />
+<glyph unicode="Z" horiz-adv-x="1180" d="M1098 0h-1016v76l856 1290h-817v96h954v-76l-858 -1290h881v-96z" />
+<glyph unicode="[" horiz-adv-x="653" d="M602 -324h-428v1786h428v-94h-330v-1597h330v-95z" />
+<glyph unicode="\" horiz-adv-x="698" d="M127 1462l547 -1462h-103l-546 1462h102z" />
+<glyph unicode="]" horiz-adv-x="653" d="M51 -229h330v1597h-330v94h428v-1786h-428v95z" />
+<glyph unicode="^" d="M88 561l465 912h68l460 -912h-100l-395 791l-398 -791h-100z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -266h-850v82h850v-82z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M776 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="a" horiz-adv-x="1085" d="M842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M641 1108q228 0 343.5 -143.5t115.5 -419.5q0 -271 -121.5 -418t-341.5 -147q-116 0 -209 48t-147 136h-9l-28 -164h-62v1556h99v-391q0 -88 -4 -162l-3 -85h7q62 98 149.5 144t210.5 46zM639 1018q-192 0 -275 -110t-83 -363v-17q0 -246 86.5 -353t269.5 -107 q178 0 268 124.5t90 354.5q0 471 -356 471z" />
+<glyph unicode="c" horiz-adv-x="973" d="M616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51z" />
+<glyph unicode="d" horiz-adv-x="1219" d="M580 1108q118 0 204 -43t154 -147h6q-6 126 -6 247v391h98v-1556h-65l-25 166h-8q-124 -186 -356 -186q-225 0 -344 140t-119 408q0 282 118 431t343 149zM580 1018q-178 0 -267.5 -125t-89.5 -363q0 -462 359 -462q184 0 270 107t86 353v17q0 252 -84.5 362.5 t-273.5 110.5z" />
+<glyph unicode="e" horiz-adv-x="1124" d="M621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5z" />
+<glyph unicode="f" horiz-adv-x="614" d="M586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86z" />
+<glyph unicode="g" horiz-adv-x="1071" d="M1030 1087v-69l-225 -14q90 -112 90 -246q0 -157 -104.5 -254.5t-280.5 -97.5q-74 0 -104 6q-59 -31 -90 -73t-31 -89q0 -52 39.5 -76t132.5 -24h190q177 0 271 -71.5t94 -211.5q0 -172 -139.5 -265.5t-397.5 -93.5q-205 0 -317.5 79t-112.5 220q0 112 69.5 186 t188.5 101q-49 21 -78.5 59.5t-29.5 88.5q0 109 139 192q-95 39 -148 122.5t-53 191.5q0 163 103.5 261.5t279.5 98.5q107 0 166 -21h348zM150 -184q0 -224 333 -224q428 0 428 273q0 98 -67 142t-217 44h-178q-299 0 -299 -235zM233 748q0 -126 76.5 -195.5t204.5 -69.5 q136 0 208.5 69t72.5 200q0 139 -74.5 208.5t-208.5 69.5q-130 0 -204.5 -74.5t-74.5 -207.5z" />
+<glyph unicode="h" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1556h99v-495l-5 -139h7q61 98 154 142t231 44q370 0 370 -397v-711h-98z" />
+<glyph unicode="i" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="j" horiz-adv-x="463" d="M37 -492q-80 0 -135 25v86q69 -20 129 -20q151 0 151 176v1312h99v-1298q0 -135 -63.5 -208t-180.5 -73zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="k" horiz-adv-x="991" d="M279 477l555 610h120l-428 -464l465 -623h-119l-413 549l-178 -162v-387h-99v1556h99v-780l-7 -299h5z" />
+<glyph unicode="l" horiz-adv-x="463" d="M281 0h-99v1556h99v-1556z" />
+<glyph unicode="m" horiz-adv-x="1808" d="M1540 0v713q0 159 -62 232t-190 73q-167 0 -247 -92t-80 -289v-637h-101v743q0 275 -252 275q-171 0 -249 -99.5t-78 -318.5v-600h-99v1087h82l21 -149h6q45 81 128 125.5t183 44.5q257 0 330 -193h4q53 93 142.5 143t203.5 50q178 0 267 -95t89 -302v-711h-98z" />
+<glyph unicode="n" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98z" />
+<glyph unicode="o" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5t-97.5 -349.5z " />
+<glyph unicode="p" horiz-adv-x="1219" d="M647 -20q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v1579h84l19 -155h6q112 176 358 176q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5zM645 68q167 0 258.5 124t91.5 347q0 479 -346 479q-190 0 -279 -104.5t-89 -340.5v-32 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="q" horiz-adv-x="1219" d="M569 -20q-214 0 -332 142t-118 410q0 275 118 425.5t338 150.5q236 0 353 -174h6l18 153h84v-1579h-98v414q0 122 6 248h-6q-118 -190 -369 -190zM571 68q198 0 282.5 109t84.5 366v12q0 245 -85 354t-271 109q-176 0 -267.5 -124t-91.5 -364q0 -229 89.5 -345.5 t258.5 -116.5z" />
+<glyph unicode="r" horiz-adv-x="797" d="M610 1108q69 0 148 -14l-19 -95q-68 17 -141 17q-139 0 -228 -118t-89 -298v-600h-99v1087h84l10 -196h7q67 120 143 168.5t184 48.5z" />
+<glyph unicode="s" horiz-adv-x="954" d="M856 283q0 -146 -111 -224.5t-315 -78.5q-218 0 -346 67v107q164 -82 346 -82q161 0 244.5 53.5t83.5 142.5q0 82 -66.5 138t-218.5 110q-163 59 -229 101.5t-99.5 96t-33.5 130.5q0 122 102.5 193t286.5 71q176 0 334 -66l-37 -90q-160 66 -297 66q-133 0 -211 -44 t-78 -122q0 -85 60.5 -136t236.5 -114q147 -53 214 -95.5t100.5 -96.5t33.5 -127z" />
+<glyph unicode="t" horiz-adv-x="686" d="M469 68q94 0 164 16v-80q-72 -24 -166 -24q-144 0 -212.5 77t-68.5 242v702h-161v58l161 45l50 246h51v-263h319v-86h-319v-688q0 -125 44 -185t138 -60z" />
+<glyph unicode="u" horiz-adv-x="1208" d="M268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98z" />
+<glyph unicode="v" horiz-adv-x="940" d="M420 0l-420 1087h102l281 -739q56 -142 84 -248h6q41 136 84 250l281 737h102l-420 -1087h-100z" />
+<glyph unicode="w" horiz-adv-x="1481" d="M1051 0l-238 727q-23 74 -59 217h-6l-21 -74l-45 -145l-242 -725h-98l-311 1087h106l174 -630q61 -234 80 -344h6q59 234 86 311l224 663h90l213 -661q72 -235 88 -311h6q8 65 80 348l166 624h100l-295 -1087h-104z" />
+<glyph unicode="x" horiz-adv-x="1020" d="M449 559l-379 528h114l324 -458l321 458h109l-373 -528l400 -559h-115l-342 485l-344 -485h-109z" />
+<glyph unicode="y" horiz-adv-x="940" d="M0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5z" />
+<glyph unicode="z" horiz-adv-x="944" d="M858 0h-776v63l645 936h-598v88h727v-63l-649 -936h651v-88z" />
+<glyph unicode="{" horiz-adv-x="723" d="M389 -27q0 -102 59.5 -152.5t202.5 -53.5v-91q-195 0 -277.5 75t-82.5 231v337q0 205 -230 209v80q122 2 176 51t54 148v350q0 299 360 305v-90q-138 -5 -200 -58t-62 -157v-305q0 -130 -44 -194t-142 -85v-8q97 -20 141.5 -83.5t44.5 -186.5v-322z" />
+<glyph unicode="|" horiz-adv-x="1108" d="M508 1561h92v-2067h-92v2067z" />
+<glyph unicode="}" horiz-adv-x="723" d="M334 295q0 123 44.5 186.5t141.5 83.5v8q-97 20 -141.5 84t-44.5 195v305q0 103 -61.5 156.5t-200.5 58.5v90q174 0 267 -77.5t93 -227.5v-350q0 -100 54.5 -148.5t175.5 -50.5v-80q-230 -4 -230 -209v-337q0 -155 -82.5 -230.5t-277.5 -75.5v91q141 2 201.5 52.5 t60.5 153.5v322z" />
+<glyph unicode="~" d="M334 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t155 -57.5q126 -58 220 -58q56 0 109.5 30.5t115.5 94.5v-96q-48 -49 -104.5 -81t-129.5 -32q-116 0 -270 72q-124 57 -221 57z" />
+<glyph unicode="&#xa1;" horiz-adv-x="492" d="M215 711h61l29 -1086h-119zM166 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xa2;" d="M602 190q-186 30 -288.5 175t-102.5 380q0 232 102.5 381.5t288.5 182.5v174h82v-166h14q131 0 275 -55l-31 -84q-134 51 -237 51q-187 0 -288.5 -122.5t-101.5 -358.5q0 -225 100.5 -349.5t280.5 -124.5q131 0 267 58v-92q-110 -56 -267 -56h-12v-204h-82v210z" />
+<glyph unicode="&#xa3;" d="M412 676v-256q0 -116 -35 -196t-113 -128h809v-96h-995v84q110 21 171.5 110t61.5 224v258h-211v82h211v297q0 204 98 315t281 111q175 0 330 -68l-35 -86q-157 66 -295 66q-141 0 -209.5 -81t-68.5 -253v-301h411v-82h-411z" />
+<glyph unicode="&#xa4;" d="M991 723q0 -151 -90 -256l139 -141l-59 -60l-137 142q-110 -93 -260 -93q-153 0 -260 93l-138 -142l-59 60l139 141q-90 106 -90 256q0 147 90 258l-139 141l59 60l138 -142q103 93 260 93q155 0 260 -93l137 142l59 -60l-139 -141q90 -111 90 -258zM584 395 q134 0 228.5 95.5t94.5 232.5q0 136 -95 233t-228 97q-134 0 -229 -97t-95 -233t94.5 -232t229.5 -96z" />
+<glyph unicode="&#xa5;" d="M586 666l428 796h110l-432 -788h283v-82h-338v-205h338v-82h-338v-305h-105v305h-337v82h337v205h-337v82h278l-430 788h117z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1108" d="M508 1561h92v-764h-92v764zM508 258h92v-764h-92v764z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M145 813q0 83 50.5 152.5t138.5 107.5q-86 47 -125 102t-39 136q0 117 101.5 183.5t275.5 66.5q175 0 336 -64l-35 -80q-91 34 -158.5 47t-144.5 13q-134 0 -205.5 -44.5t-71.5 -119.5q0 -54 25.5 -88.5t85.5 -65.5t188 -74q192 -64 264 -132.5t72 -170.5 q0 -173 -186 -274q86 -42 129 -96t43 -136q0 -135 -113 -207.5t-311 -72.5q-92 0 -171 15t-165 52v95q182 -78 332 -78q162 0 247 49.5t85 140.5q0 55 -25 87.5t-88.5 65.5t-190.5 79q-200 73 -272 141.5t-72 169.5zM246 825q0 -65 31.5 -104t105.5 -75t250 -99 q82 41 126 98t44 121q0 62 -32 102t-108.5 77t-236.5 87q-81 -23 -130.5 -79t-49.5 -128z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M336 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM717 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M897 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q84 0 198 43v-88q-102 -45 -208 -45q-187 0 -288.5 115t-101.5 331q0 208 111 332.5t297 124.5q119 0 227 -52l-37 -83q-98 45 -190 45zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100 t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z " />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M512 813l-25 72q-84 -84 -202 -84q-95 0 -151 49t-56 139q0 100 80 151.5t241 59.5l95 4v43q0 77 -38 114.5t-106 37.5q-87 0 -196 -49l-33 73q117 56 231 56q228 0 228 -215v-451h-68zM168 993q0 -54 35 -85t96 -31q90 0 142.5 50t52.5 142v64l-88 -5 q-116 -6 -177 -36.5t-61 -98.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="885" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27zM442 543l310 393l61 -43l-254 -363l254 -362l-61 -43l-310 391v27z" />
+<glyph unicode="&#xac;" d="M1038 764v-494h-82v412h-845v82h927z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M92 512zM92 512v82h475v-82h-475z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M709 731h112q91 0 143 46.5t52 135.5q0 172 -197 172h-110v-354zM1120 918q0 -79 -38.5 -139.5t-110.5 -94.5l237 -393h-121l-210 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v82h1036v-82z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M139 1184q0 132 86.5 215.5t212.5 83.5t212.5 -83.5t86.5 -215.5t-86.5 -215.5t-212.5 -83.5q-130 0 -214.5 83t-84.5 216zM229 1184q0 -91 61 -154t148 -63q86 0 147.5 62t61.5 155q0 92 -60 154.5t-149 62.5q-90 0 -149.5 -64t-59.5 -153z" />
+<glyph unicode="&#xb1;" d="M111 1zM111 1v82h948v-82h-948zM625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="&#xb2;" horiz-adv-x="688" d="M629 586h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xb3;" horiz-adv-x="688" d="M616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5q-128 0 -246 -78 l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1221" d="M281 1087v-704q0 -164 69 -238.5t213 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-50 -77 -150 -123.5t-217 -46.5q-99 0 -167.5 27.5t-119.5 84.5q5 -92 5 -170v-414h-99v1579h99z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1106 -260h-100v1722h-228v-1722h-100v819q-64 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h543v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="487" d="M162 623zM162 721q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M393 -291q0 -100 -67.5 -150.5t-188.5 -50.5q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="688" d="M350 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77z" />
+<glyph unicode="&#xba;" horiz-adv-x="739" d="M670 1141q0 -161 -80 -250.5t-223 -89.5t-220 86t-77 254q0 162 78 250t223 88q142 0 220.5 -87t78.5 -251zM160 1141q0 -264 209 -264t209 264q0 131 -50 194.5t-159 63.5t-159 -63.5t-50 -194.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="885" d="M803 518l-309 -393l-62 43l254 362l-254 363l62 43l309 -391v-27zM442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1516" d="M59 0zM333 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1148 1462l-811 -1462h-94l811 1462h94zM1392 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1173 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1516" d="M11 0zM285 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1073 1462l-811 -1462h-94l811 1462h94zM1403 1h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5 q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1516" d="M41 0zM616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5 q-128 0 -246 -78l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163zM1300 1462l-811 -1462h-94l811 1462h94zM1495 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1276 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbf;" horiz-adv-x="862" d="M569 711v-37q0 -125 -39.5 -204.5t-136.5 -164.5l-90 -79q-73 -61 -104 -120.5t-31 -138.5q0 -124 82 -200t221 -76q125 0 233 46l64 27l37 -79q-111 -48 -185.5 -64t-152.5 -16q-184 0 -288.5 99t-104.5 269q0 70 20 124t58.5 102t171.5 159q64 53 98.5 98.5t49.5 94 t15 145.5v15h82zM440 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM720 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM504 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM328 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM784 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM367 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM748 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM836 1610q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM482 1610q0 -66 37.5 -103.5t99.5 -37.5 t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1653" d="M1528 0h-717v516h-475l-227 -516h-111l653 1462h877v-94h-615v-553h576v-94h-576v-627h615v-94zM377 608h434v760h-100z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1272" d="M129 0zM831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80zM911 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM697 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM463 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xca;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM315 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM354 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM735 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xcc;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM320 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xcd;" horiz-adv-x="516" d="M191 0zM207 0v1462h102v-1462h-102zM191 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xce;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM-32 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcf;" horiz-adv-x="516" d="M5 0zM207 0v1462h102v-1462h-102zM5 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM386 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1466" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v678h-160v94h160v690h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-600h406v-94h-406v-588h242q655 0 655 651z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1477" d="M207 0zM1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462zM897 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM885 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM686 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM492 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM940 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM529 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM910 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd7;" d="M584 780l409 408l58 -58l-408 -407l406 -408l-58 -57l-407 408l-406 -408l-57 57l405 408l-407 407l57 58z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-236 0 -395 120l-86 -120l-74 59l90 127q-188 200 -188 569q0 349 175.5 549.5t479.5 200.5q232 0 392 -121l108 152l72 -60l-111 -153q191 -207 191 -570zM1325 733q0 315 -139 486l-742 -1037q133 -106 338 -106 q264 0 403.5 170t139.5 487zM240 733q0 -312 139 -483l739 1034q-133 102 -334 102q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM833 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xda;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM633 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM444 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207 q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM481 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM862 1727q0 46 15.5 66 t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM434 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xde;" horiz-adv-x="1198" d="M1087 778q0 -212 -144 -325t-408 -113h-226v-340h-102v1462h102v-264h256q522 0 522 -420zM309 428h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1194" d="M961 1284q0 -139 -139 -250q-81 -64 -110.5 -100.5t-29.5 -75.5q0 -44 14.5 -68t51.5 -57t102 -78q106 -75 151.5 -124.5t68 -103t22.5 -120.5q0 -156 -88 -241.5t-246 -85.5q-95 0 -174.5 18.5t-126.5 48.5v107q65 -38 148.5 -62t152.5 -24q114 0 174.5 54.5t60.5 160.5 q0 83 -39 144t-149 136q-127 87 -175 147t-48 146q0 60 32.5 110t106.5 108q74 57 106.5 105.5t32.5 106.5q0 93 -70 143t-202 50q-145 0 -226 -69t-81 -196v-1214h-99v1206q0 173 103.5 267t292.5 94q188 0 285.5 -72.5t97.5 -210.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM638 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM422 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM251 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM697 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5 h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM282 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM663 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM759 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM405 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5 q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1731" d="M1243 -20q-295 0 -397 256q-68 -133 -168 -194.5t-252 -61.5q-156 0 -242 82.5t-86 226.5q0 154 125 243t377 97l201 6v72q0 155 -61.5 234t-198.5 79q-148 0 -305 -84l-37 86q173 84 346 84q261 0 325 -211q111 213 347 213q184 0 289.5 -134.5t105.5 -363.5v-80h-715 q0 -460 348 -460q85 0 150 12t174 57v-90q-92 -41 -165 -55t-161 -14zM434 70q169 0 266 99.5t97 276.5v107l-187 -8q-219 -11 -313 -71.5t-94 -188.5q0 -102 61 -158.5t170 -56.5zM1217 1020q-284 0 -314 -402h604q0 188 -77.5 295t-212.5 107z" />
+<glyph unicode="&#xe7;" horiz-adv-x="973" d="M119 0zM616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51zM723 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM685 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM452 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xea;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM290 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM331 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM712 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xec;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM349 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xed;" horiz-adv-x="463" d="M107 0zM281 0h-99v1087h99v-1087zM107 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xee;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-58 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xef;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-21 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM360 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M1055 559q0 -276 -124 -427.5t-349 -151.5q-214 0 -339.5 130t-125.5 361q0 228 126.5 357.5t342.5 129.5q108 0 187.5 -33t148.5 -96l4 2q-64 270 -269 459l-270 -157l-49 77l244 146q-86 62 -199 119l45 81q147 -69 248 -145l225 137l49 -84l-202 -121 q154 -151 230.5 -353t76.5 -431zM950 557q0 146 -97 228.5t-267 82.5q-185 0 -275 -100.5t-90 -304.5q0 -186 94.5 -289.5t268.5 -103.5q179 0 272.5 123t93.5 364z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1208" d="M182 0zM940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98zM779 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5 t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM718 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM499 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM309 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM761 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM346 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM727 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf7;" d="M111 682v82h948v-82h-948zM504 1075q0 99 80 99q82 0 82 -99q0 -52 -23.5 -75t-58.5 -23q-34 0 -57 23t-23 75zM504 371q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-173 0 -291 98l-86 -113l-72 58l93 120q-121 153 -121 402q0 266 129 414.5t354 148.5q179 0 301 -104l96 124l74 -55l-104 -137q112 -147 112 -391zM223 545q0 -200 78 -322l543 705q-98 90 -246 90q-180 0 -277.5 -123.5 t-97.5 -349.5zM977 545q0 190 -72 309l-543 -702q94 -82 238 -82q180 0 278.5 125.5t98.5 349.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM687 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM495 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM313 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70 v16z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM350 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM731 1389q0 46 15.5 66t47.5 20q64 0 64 -86 t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xfd;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM361 1257q73 79 144.5 171.5t97.5 140.5h141v-17 q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M281 918q114 190 368 190q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v2048h99v-391l-7 -247h7zM645 68q167 0 258.5 124t91.5 347q0 479 -348 479q-193 0 -279.5 -105t-86.5 -354v-18 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="&#xff;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM214 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86 q-63 0 -63 86zM595 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x131;" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087z" />
+<glyph unicode="&#x152;" horiz-adv-x="1839" d="M1714 0h-756q-76 -16 -176 -16q-305 0 -479 200t-174 551q0 347 174.5 545.5t480.5 198.5q78 0 183 -17h747v-94h-655v-553h616v-94h-616v-627h655v-94zM782 80q109 0 174 18v1266q-62 16 -172 16q-262 0 -403 -167.5t-141 -479.5q0 -315 140.5 -484t401.5 -169z" />
+<glyph unicode="&#x153;" horiz-adv-x="1942" d="M1438 -20q-156 0 -266.5 67.5t-165.5 198.5q-59 -128 -158 -197t-252 -69q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q151 0 251 -70t157 -209q110 279 399 279q192 0 303 -134t111 -364v-80h-762q2 -230 100.5 -345t276.5 -115q93 0 163.5 13t178.5 56 v-90q-92 -40 -170 -54.5t-172 -14.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5q174 0 265 122.5t91 352.5q0 224 -93 348.5t-265 124.5q-180 0 -277.5 -123.5t-97.5 -349.5zM1409 1020q-155 0 -242 -104t-102 -298h653q0 189 -82 295.5t-227 106.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM288 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM669 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1182" d="M299 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M805 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM451 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1182" d="M780 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 512v82h860v-82h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 512v82h1884v-82h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="297" d="M41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x2019;" horiz-adv-x="297" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201c;" horiz-adv-x="614" d="M358 961l-12 20q34 120 83 255t91 226h66q-30 -98 -63 -248.5t-48 -252.5h-117zM41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x201d;" horiz-adv-x="614" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM573 1462l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x201e;" horiz-adv-x="768" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM612 238l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M231 748q0 89 40.5 134.5t113.5 45.5t113.5 -47t40.5 -133q0 -85 -41 -133t-113 -48t-113 47t-41 134z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1466" d="M162 0zM162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM651 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM1141 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="524" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="524" d="M442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="246" d="M573 1462l-811 -1462h-94l811 1462h94z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="688" d="M657 827h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM438 905v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#x20ac;" d="M803 1397q-174 0 -288 -125.5t-155 -364.5h502v-82h-510l-4 -104v-24q0 -65 4 -87h449v-82h-443q30 -217 147.5 -338.5t301.5 -121.5q148 0 287 65v-94q-81 -34 -150.5 -46.5t-140.5 -12.5q-228 0 -367.5 140t-181.5 408h-180v82h172q-4 38 -4 113l4 102h-172v82h184 q39 272 183 425t362 153q88 0 161 -17t148 -57l-39 -86q-132 72 -270 72z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1485" d="M313 741h-86v643h-217v78h522v-78h-219v-643zM913 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l224 606h125v-721h-86v398l4 207h-7l-227 -605h-74z" />
+<glyph unicode="&#x2212;" d="M111 682v82h948v-82h-948z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1219" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000..e786074
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000..8f44592
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000..431d7e3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,1835 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb00;" horiz-adv-x="1155" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1040" d="M0 0zM739 0h-98l231 1087h96zM915 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1042" d="M0 0zM737 0h-94l334 1556h94zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248 l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1616" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1315 0h-98l231 1087h96zM1491 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1626" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1321 0h-94l334 1556h94z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="502" d="M248 377h-62l203 1085h119zM80 57q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-68 -34.5q-67 0 -67 73z" />
+<glyph unicode="&#x22;" horiz-adv-x="721" d="M455 1462l-146 -528h-61l80 528h127zM784 1462l-145 -528h-61l79 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M389 530l119 398h-297l8 80h311l134 454h90l-136 -454h365l135 454h86l-135 -454h285l-8 -80h-302l-118 -398h303l-8 -79h-320l-133 -451h-90l135 451h-360l-134 -451h-88l134 451h-283l8 79h299zM475 530h363l120 398h-362z" />
+<glyph unicode="$" d="M928 467q0 -151 -110.5 -243t-297.5 -103l-53 -240h-82l51 240q-79 2 -158 18t-137 43v94q65 -34 153.5 -53.5t160.5 -19.5l110 512q-110 53 -153 91t-66.5 87.5t-23.5 116.5q0 155 105.5 250.5t272.5 99.5l41 192h80l-41 -192q149 -5 277 -68l-35 -78q-110 61 -256 70 l-109 -514q124 -60 172.5 -99.5t73.5 -88.5t25 -115zM537 203q142 7 223.5 74.5t81.5 183.5q0 76 -48 129.5t-157 97.5zM686 1284q-134 -9 -205 -80t-71 -186q0 -78 37 -128.5t137 -96.5z" />
+<glyph unicode="%" horiz-adv-x="1556" d="M1458 1462l-1139 -1462h-106l1135 1462h110zM1520 612q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q121 0 176.5 -71.5t55.5 -211.5zM1284 821q-80 0 -146.5 -72.5t-106.5 -202.5t-40 -263q0 -116 41 -174t113 -58 q130 0 209.5 166.5t79.5 386.5q0 109 -36 163t-114 54zM760 1198q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q232 0 232 -283zM524 1407q-79 0 -145 -71.5t-107 -203t-41 -264.5q0 -115 41 -173t113 -58 q84 0 148.5 72t102.5 204t38 277q0 109 -36 163t-114 54z" />
+<glyph unicode="&#x26;" horiz-adv-x="1331" d="M748 1395q-125 0 -194 -68t-69 -192q0 -132 109 -281q203 89 279.5 163.5t76.5 182.5q0 91 -56.5 143t-145.5 52zM465 63q108 0 211.5 42.5t222.5 146.5l-352 493q-164 -79 -232 -134.5t-103.5 -124t-35.5 -158.5q0 -119 78 -192t211 -73zM78 324q0 162 99 277.5 t325 215.5l-41 67q-78 128 -78 251q0 157 101 253.5t264 96.5q145 0 227 -76.5t82 -206.5q0 -85 -41 -154t-121 -128t-256 -138l330 -463q73 75 135.5 176.5t91.5 186.5h111q-102 -247 -285 -436l184 -246h-123l-131 184q-121 -108 -242 -156t-266 -48q-167 0 -266.5 94 t-99.5 250z" />
+<glyph unicode="'" horiz-adv-x="403" d="M461 1462l-146 -528h-61l80 528h127z" />
+<glyph unicode="(" horiz-adv-x="526" d="M104 270q0 343 122 633t382 559h105q-259 -276 -384.5 -568t-125.5 -618q0 -317 127 -600h-80q-146 262 -146 594z" />
+<glyph unicode=")" horiz-adv-x="526" d="M453 868q0 -345 -123.5 -636t-380.5 -556h-105q257 274 383.5 566.5t126.5 619.5q0 148 -28.5 294t-98.5 306h80q146 -262 146 -594z" />
+<glyph unicode="*" horiz-adv-x="1137" d="M834 1540l-109 -405l438 8l-8 -107l-416 29l181 -401l-115 -37l-135 417l-285 -348l-78 78l318 318l-392 125l39 102l394 -168l47 408z" />
+<glyph unicode="+" d="M563 672h-401v100h401v404h101v-404h401v-100h-401v-400h-101v400z" />
+<glyph unicode="," horiz-adv-x="451" d="M250 238l8 -23q-34 -92 -114 -233.5t-160 -245.5h-74q79 132 141 271t88 231h111z" />
+<glyph unicode="-" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="." horiz-adv-x="485" d="M82 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="/" horiz-adv-x="641" d="M827 1462l-817 -1462h-110l815 1462h112z" />
+<glyph unicode="0" d="M1075 1016q0 -201 -41 -405t-116.5 -346t-183.5 -213.5t-242 -71.5q-176 0 -264.5 126.5t-88.5 387.5q0 186 44.5 381.5t124 334t187 207t240.5 68.5q340 0 340 -469zM723 1397q-134 0 -241.5 -113t-173.5 -329t-66 -451q0 -222 62.5 -329t197.5 -107q139 0 244 112 t166 337t61 489q0 199 -59.5 295t-190.5 96z" />
+<glyph unicode="1" d="M537 0h-105l225 1055q19 92 74 293q-42 -36 -75.5 -61t-249.5 -161l-52 78l406 258h90z" />
+<glyph unicode="2" d="M909 0h-870l22 104l449 402q198 177 284 276.5t126.5 186.5t40.5 180q0 112 -66 178t-197 66q-176 0 -333 -129l-54 73q180 146 394 146q173 0 268.5 -85t95.5 -237q0 -110 -43.5 -208.5t-141.5 -211.5t-311 -303l-383 -338v-4h736z" />
+<glyph unicode="3" d="M1049 1174q0 -162 -106 -275t-286 -143v-4q117 -24 185.5 -115.5t68.5 -226.5q0 -134 -64 -233t-179.5 -148t-274.5 -49q-96 0 -184.5 20.5t-153.5 52.5v101q172 -86 344 -86q197 0 303.5 89.5t106.5 252.5q0 145 -89 223t-247 78h-117l21 96h110q209 0 333 95.5 t124 258.5q0 114 -63.5 175t-188.5 61q-167 0 -344 -131l-49 75q84 67 188 104.5t218 37.5q161 0 252.5 -82.5t91.5 -226.5z" />
+<glyph unicode="4" d="M1071 371h-264l-80 -371h-96l80 371h-688l20 96l881 1010h118l-215 -1018h265zM729 459q79 369 119 558.5t86 354.5h-4q-66 -91 -129 -166l-651 -747h579z" />
+<glyph unicode="5" d="M582 879q188 0 292.5 -102t104.5 -279q0 -237 -148 -377.5t-407 -140.5q-84 0 -177.5 20t-158.5 51v107q170 -90 340 -90q208 0 328.5 114.5t120.5 313.5q0 140 -85 219.5t-225 79.5q-133 0 -243 -41l-66 49l193 659h624l-18 -96h-541l-149 -516q98 29 215 29z" />
+<glyph unicode="6" d="M170 428q0 283 105 544.5t269.5 385t383.5 123.5q123 0 182 -21l-18 -90q-86 23 -170 23q-233 0 -393.5 -174t-233.5 -502h8q68 94 164 143t211 49q161 0 250.5 -100.5t89.5 -282.5q0 -156 -60 -281t-171 -195t-257 -70q-171 0 -265.5 119t-94.5 329zM543 68 q112 0 196.5 58.5t130 162t45.5 229.5q0 146 -67 224.5t-195 78.5q-81 0 -154 -31.5t-129 -87t-78 -115t-22 -173.5q0 -164 72.5 -255t200.5 -91z" />
+<glyph unicode="7" d="M244 0l796 1366h-766l23 96h858l-20 -110l-779 -1352h-112z" />
+<glyph unicode="8" d="M737 1485q163 0 258 -85t95 -229q0 -138 -84 -234.5t-285 -172.5q130 -78 190 -170.5t60 -208.5t-58 -208t-165.5 -144.5t-260.5 -52.5q-178 0 -283.5 92.5t-105.5 253.5q0 159 100.5 268.5t321.5 187.5q-100 72 -144 152t-44 180q0 159 114 265t291 106zM610 733 q-218 -73 -313.5 -167.5t-95.5 -225.5q0 -136 77.5 -206.5t219.5 -70.5q168 0 270 91t102 233q0 104 -62 189t-198 157zM727 1399q-130 0 -214.5 -82t-84.5 -203q0 -91 41.5 -159t157.5 -142q192 62 279 144t87 206q0 109 -70.5 172.5t-195.5 63.5z" />
+<glyph unicode="9" d="M1059 1032q0 -288 -101.5 -548t-263.5 -382t-393 -122q-114 0 -186 22v90q87 -29 192 -29q474 0 627 674h-8q-140 -192 -367 -192q-162 0 -255 105t-93 284q0 155 59.5 281t170.5 196t257 70q174 0 267.5 -115.5t93.5 -333.5zM686 1393q-112 0 -197.5 -58.5 t-130.5 -162.5t-45 -230q0 -145 67.5 -225t192.5 -80q83 0 157.5 32.5t129 87.5t76.5 114t22 176q0 166 -71 256t-201 90z" />
+<glyph unicode=":" horiz-adv-x="485" d="M260 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74zM102 55q0 56 25.5 88.5t69.5 32.5q65 0 65 -72q0 -55 -25.5 -88.5t-66.5 -33.5q-68 0 -68 73z" />
+<glyph unicode=";" horiz-adv-x="485" d="M287 238l8 -23q-35 -96 -118.5 -242t-156.5 -237h-73q79 132 141 271t88 231h111zM266 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74z" />
+<glyph unicode="&#x3c;" d="M1051 262l-914 414v74l914 471v-103l-801 -399l801 -350v-107z" />
+<glyph unicode="=" d="M168 885v100h903v-100h-903zM168 461v98h903v-98h-903z" />
+<glyph unicode="&#x3e;" d="M170 369l801 350l-801 399v103l915 -471v-74l-915 -414v107z" />
+<glyph unicode="?" horiz-adv-x="799" d="M242 362l6 29q29 132 82 206.5t157 147.5q118 84 175 145.5t86.5 127.5t29.5 141q0 108 -67.5 170t-182.5 62q-139 0 -307 -101l-39 86q85 49 171.5 78t187.5 29q159 0 250.5 -84.5t91.5 -229.5q0 -127 -66 -234t-231 -226q-85 -61 -132.5 -108.5t-73 -95t-46.5 -143.5 h-92zM170 59q0 56 25 88.5t69 32.5q66 0 66 -71q0 -54 -24.5 -88.5t-67.5 -34.5q-68 0 -68 73z" />
+<glyph unicode="@" horiz-adv-x="1724" d="M1688 858q0 -179 -56 -323.5t-154.5 -227t-211.5 -82.5q-98 0 -154.5 55t-56.5 144h-4q-54 -97 -132.5 -148t-168.5 -51q-112 0 -178 73t-66 202q0 156 63 283t178 198.5t261 71.5q122 0 252 -52l-84 -315q-39 -140 -39 -221q0 -71 34.5 -111.5t100.5 -40.5 q86 0 160 73.5t117.5 198t43.5 251.5q0 156 -65 277t-187 188t-292 67q-235 0 -424.5 -108.5t-295.5 -304t-106 -439.5q0 -288 155 -449t435 -161q207 0 420 82v-90q-210 -82 -428 -82q-203 0 -357.5 82.5t-238.5 239t-84 370.5q0 276 121.5 493.5t337 337t473.5 119.5 q189 0 330.5 -72.5t221 -213t79.5 -314.5zM1008 969q-113 0 -204.5 -59t-142.5 -165.5t-51 -238.5q0 -92 40.5 -142.5t113.5 -50.5q101 0 180.5 89t124.5 255l78 289q-66 23 -139 23z" />
+<glyph unicode="A" horiz-adv-x="1059" d="M805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449z" />
+<glyph unicode="B" horiz-adv-x="1202" d="M412 1462h379q190 0 290.5 -84t100.5 -241q0 -153 -90 -249t-254 -124v-4q125 -31 188.5 -113.5t63.5 -204.5q0 -205 -140.5 -323.5t-390.5 -118.5h-457zM377 811h278q206 0 313 81t107 238q0 119 -78 180.5t-229 61.5h-272zM358 721l-135 -631h342q201 0 309.5 87.5 t108.5 256.5q0 145 -90 216t-275 71h-260z" />
+<glyph unicode="C" horiz-adv-x="1169" d="M961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17z" />
+<glyph unicode="D" horiz-adv-x="1350" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l310 1462h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-275 -1280h209z" />
+<glyph unicode="E" horiz-adv-x="1067" d="M829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627z" />
+<glyph unicode="F" horiz-adv-x="981" d="M205 0h-103l310 1462h708l-20 -94h-604l-134 -620h570l-21 -95h-569z" />
+<glyph unicode="G" horiz-adv-x="1374" d="M856 735h406l-150 -682q-211 -73 -405 -73q-257 0 -397 146t-140 421q0 265 105 483.5t283.5 335.5t395.5 117q113 0 203 -19t184 -59l-38 -94q-110 46 -189.5 62t-167.5 16q-184 0 -339 -107.5t-244 -301.5t-89 -433q0 -229 114.5 -352t326.5 -123q155 0 309 47l117 526 h-303z" />
+<glyph unicode="H" horiz-adv-x="1366" d="M1063 0h-100l151 719h-760l-149 -719h-103l310 1462h102l-139 -649h760l137 649h100z" />
+<glyph unicode="I" horiz-adv-x="504" d="M102 0l310 1462h98l-309 -1462h-99z" />
+<glyph unicode="J" horiz-adv-x="477" d="M-180 -360q-48 0 -88 8t-56 16l11 92q57 -20 137 -20q213 0 262 241l309 1485h105l-314 -1491q-35 -170 -125 -250.5t-241 -80.5z" />
+<glyph unicode="K" horiz-adv-x="1122" d="M979 0h-111l-342 788l-190 -153l-131 -635h-103l310 1462h102l-158 -723l133 121l680 602h138l-699 -610z" />
+<glyph unicode="L" horiz-adv-x="938" d="M102 0l310 1462h102l-289 -1366h621l-23 -96h-721z" />
+<glyph unicode="M" horiz-adv-x="1669" d="M772 205l733 1257h150l-301 -1462h-101l191 901q79 369 100 447h-6l-780 -1348h-51l-222 1348h-6q-20 -154 -78 -426l-196 -922h-96l309 1462h143l205 -1257h6z" />
+<glyph unicode="N" horiz-adv-x="1372" d="M1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94z" />
+<glyph unicode="O" horiz-adv-x="1464" d="M1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300t79 430.5 q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="P" horiz-adv-x="1145" d="M1145 1102q0 -500 -610 -500h-201l-129 -602h-103l310 1462h315q202 0 310 -92.5t108 -267.5zM350 694h191q252 0 373.5 96.5t121.5 305.5q0 274 -329 274h-211z" />
+<glyph unicode="Q" horiz-adv-x="1464" d="M1403 911q0 -216 -70 -418t-186.5 -324t-274.5 -167l267 -350h-142l-231 332l-74 -4q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128 q169 0 300 98.5t210 300t79 430.5q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="R" horiz-adv-x="1145" d="M336 633l-131 -633h-103l310 1462h303q430 0 430 -360q0 -182 -103.5 -303t-281.5 -152q201 -591 221 -647h-111l-211 633h-323zM358 725h252q208 0 317 95.5t109 281.5q0 268 -329 268h-211z" />
+<glyph unicode="S" horiz-adv-x="1020" d="M895 403q0 -126 -65.5 -224.5t-179.5 -148.5t-269 -50q-88 0 -172.5 17t-171.5 58v109q163 -92 348 -92q188 0 295.5 86.5t107.5 232.5q0 61 -17 104.5t-52.5 78.5t-91 68t-131.5 75q-150 76 -209.5 164t-59.5 206t59 207.5t165 139t237 49.5q99 0 180 -17.5t168 -60.5 l-32 -94q-66 40 -151.5 63t-164.5 23q-163 0 -259.5 -82.5t-96.5 -218.5q0 -103 49 -170t182 -133q154 -79 213.5 -130t89 -113t29.5 -147z" />
+<glyph unicode="T" horiz-adv-x="985" d="M438 0h-102l289 1368h-432l20 94h973l-19 -94h-440z" />
+<glyph unicode="U" horiz-adv-x="1370" d="M1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101z" />
+<glyph unicode="V" horiz-adv-x="1079" d="M457 147q51 111 124 247l572 1068h117l-799 -1462h-88l-182 1462h100l117 -950q26 -217 35 -365h4z" />
+<glyph unicode="W" horiz-adv-x="1702" d="M1018 1341q-27 -76 -62 -153.5t-563 -1187.5h-82l-73 1462h100l47 -1031l4 -165l-2 -86h6q85 226 170 398l434 884h105l61 -878q19 -266 19 -410h6q30 86 61.5 163t493.5 1125h108q-169 -365 -330.5 -731t-328.5 -731h-78l-78 1075q-11 142 -11 219l1 47h-8z" />
+<glyph unicode="X" horiz-adv-x="971" d="M879 0h-107l-254 678l-526 -678h-127l608 766l-272 696h106l240 -626l483 626h119l-555 -719z" />
+<glyph unicode="Y" horiz-adv-x="965" d="M494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100z" />
+<glyph unicode="Z" d="M913 0h-925l22 92l1069 1276h-764l23 94h887l-19 -88l-1069 -1280h799z" />
+<glyph unicode="[" horiz-adv-x="537" d="M369 -324h-426l376 1786h429l-19 -90h-330l-340 -1605h330z" />
+<glyph unicode="\" horiz-adv-x="641" d="M295 1462l242 -1462h-82l-246 1462h86z" />
+<glyph unicode="]" horiz-adv-x="537" d="M203 1462h426l-377 -1786h-428l18 91h330l340 1605h-330z" />
+<glyph unicode="^" horiz-adv-x="1047" d="M70 569l587 906h91l260 -906h-105l-217 809l-500 -809h-116z" />
+<glyph unicode="_" horiz-adv-x="801" d="M625 -291h-807l18 86h807z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M766 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1133" d="M655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82t-164 -245.5 t-64 -325.5q0 -152 50 -223.5t151 -71.5z" />
+<glyph unicode="b" horiz-adv-x="1151" d="M500 -16q-113 0 -186 59t-97 166h-6l-55 -209h-80l327 1556h95q-131 -628 -162 -751h6q93 156 199 229.5t231 73.5q281 0 281 -375q0 -203 -76 -380t-201 -273t-276 -96zM750 1018q-91 0 -180 -61.5t-160.5 -169.5t-106.5 -235t-35 -206q0 -129 64 -202.5t166 -73.5 q124 0 224 83t164 245t64 325q0 152 -49 223.5t-151 71.5z" />
+<glyph unicode="c" horiz-adv-x="887" d="M477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57z" />
+<glyph unicode="d" horiz-adv-x="1133" d="M655 1104q230 0 279 -219h4q12 66 143 671h99l-330 -1556h-82l45 274h-6q-173 -294 -424 -294q-281 0 -281 374q0 193 71.5 370t197.5 278.5t284 101.5zM406 70q89 0 178.5 62.5t160 168t106.5 231t36 209.5q0 126 -61.5 201.5t-168.5 75.5q-124 0 -224 -83t-164 -242.5 t-64 -327.5q0 -295 201 -295z" />
+<glyph unicode="e" horiz-adv-x="928" d="M469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5t-162.5 -308.5h49 q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5z" />
+<glyph unicode="f" horiz-adv-x="578" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5 t-195 -73.5z" />
+<glyph unicode="g" horiz-adv-x="1040" d="M1100 1087l-17 -79l-243 -11q26 -28 43.5 -84t17.5 -114q0 -109 -54.5 -206.5t-148 -145.5t-213.5 -48q-63 0 -77 9q-80 -33 -124 -73t-44 -81t31.5 -64.5t113.5 -31.5l121 -11q346 -31 346 -264q0 -112 -65 -197.5t-187 -131.5t-291 -46q-186 0 -291.5 72t-105.5 203 q0 236 309 334q-78 42 -78 123q0 123 191 202q-71 36 -110.5 105.5t-39.5 157.5q0 111 53.5 204t148 146t206.5 53q69 0 147 -21h361zM14 -207q0 -101 81 -150t224 -49q203 0 317 74.5t114 204.5q0 85 -62.5 130.5t-218.5 57.5l-160 15q-157 -45 -226 -114.5t-69 -168.5z M285 711q0 -112 58.5 -170t164.5 -58q88 0 154 37t102.5 114t36.5 169q0 104 -56 161.5t-157 57.5q-93 0 -161 -43t-105 -116t-37 -152z" />
+<glyph unicode="h" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -188t-103.5 -286l-102 -477h-98l332 1556h96l-86 -411q-44 -200 -66 -279h6q78 113 186.5 175.5t229.5 62.5q124 0 192 -65t68 -183q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="i" horiz-adv-x="475" d="M174 0h-98l231 1087h96zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="j" horiz-adv-x="475" d="M-166 -492q-62 0 -113 19v92q47 -22 113 -22q82 0 128.5 51.5t72.5 177.5l266 1261h96l-268 -1271q-35 -165 -106.5 -236.5t-188.5 -71.5zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="k" horiz-adv-x="944" d="M270 477l609 610h125l-474 -469l297 -618h-106l-264 559l-205 -188l-80 -371h-96l330 1556h96l-166 -780l-70 -299h4z" />
+<glyph unicode="l" horiz-adv-x="475" d="M170 0h-94l334 1556h94z" />
+<glyph unicode="m" horiz-adv-x="1751" d="M711 0l147 674q25 125 25 162q0 182 -154 182q-106 0 -200 -67.5t-159 -188.5t-100 -287l-100 -475h-98l231 1087h80l-33 -210h6q80 113 181.5 170t212.5 57q106 0 163 -67t60 -195h6q77 129 181 195.5t222 66.5q117 0 182.5 -61.5t65.5 -176.5q0 -29 -2.5 -56.5 t-19.5 -119.5l-152 -690h-100l149 680q25 120 25 176q0 77 -43 119.5t-119 42.5q-157 0 -277.5 -137.5t-168.5 -362.5l-109 -518h-102z" />
+<glyph unicode="n" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="o" horiz-adv-x="1124" d="M649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l336 1579h82l-45 -274h6q91 153 195.5 224t228.5 71q135 0 208 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-87 0 -174 -58.5t-161.5 -167.5t-110.5 -237.5t-36 -208.5q0 -125 61.5 -200.5 t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M651 1104q109 0 183.5 -58t99.5 -167h6l55 208h80l-327 -1556h-95l98 470l64 282h-6q-93 -156 -199 -229.5t-231 -73.5q-281 0 -281 374q0 201 75.5 379t200.5 274.5t277 96.5zM401 70q92 0 182 62.5t160.5 171.5t105 236.5t34.5 200.5q0 130 -63.5 203.5t-166.5 73.5 q-124 0 -224 -83t-164 -245t-64 -325q0 -143 45.5 -219t154.5 -76z" />
+<glyph unicode="r" horiz-adv-x="752" d="M713 1106q69 0 123 -14l-21 -93q-47 15 -113 15q-94 0 -179 -64t-153 -192t-100 -277l-100 -481h-98l231 1087h80l-29 -204h6q73 94 123 135.5t106.5 64.5t123.5 23z" />
+<glyph unicode="s" horiz-adv-x="827" d="M713 295q0 -144 -103 -229.5t-280 -85.5q-173 0 -305 75v107q74 -46 153 -71t148 -25q138 0 211 57.5t73 163.5q0 42 -15.5 74t-50 61.5t-132.5 85.5q-148 80 -200 145.5t-52 159.5q0 128 98.5 209.5t259.5 81.5q75 0 158.5 -17.5t140.5 -46.5l-35 -88q-136 64 -264 64 q-116 0 -186 -53t-70 -138q0 -55 17 -88t60.5 -68.5t119.5 -76.5q114 -63 161.5 -103.5t70 -86.5t22.5 -107z" />
+<glyph unicode="t" horiz-adv-x="616" d="M694 1087l-18 -81h-283l-135 -635q-22 -99 -22 -164q0 -139 126 -139q68 0 152 26v-86q-101 -28 -170 -28q-99 0 -153 54.5t-54 158.5q0 73 29 206l129 607h-182l14 67l184 17l97 253h55l-55 -256h286z" />
+<glyph unicode="u" horiz-adv-x="1143" d="M381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100z" />
+<glyph unicode="v" horiz-adv-x="895" d="M276 0l-172 1087h101l108 -735q26 -165 33 -254h6q51 115 129 256l406 733h102l-600 -1087h-113z" />
+<glyph unicode="w" horiz-adv-x="1393" d="M838 0l-60 686q-14 224 -14 266h-6q-34 -92 -144 -290l-356 -662h-117l-20 1087h92l13 -821l-3 -157h6q61 134 150 297l373 681h77l64 -681q14 -147 14 -297h6l24 61l101 236l320 681h96l-508 -1087h-108z" />
+<glyph unicode="x" horiz-adv-x="922" d="M442 483l-393 -483h-121l471 559l-245 528h100l207 -462l373 462h120l-448 -534l258 -553h-98z" />
+<glyph unicode="y" horiz-adv-x="920" d="M123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184z" />
+<glyph unicode="z" horiz-adv-x="887" d="M700 0h-729l15 72l776 932h-543l17 83h659l-18 -83l-762 -920h602z" />
+<glyph unicode="{" horiz-adv-x="709" d="M424 -324q-256 0 -256 199q0 45 16 115l56 252q18 90 18 127q0 159 -199 159l21 78q126 0 191 49t89 158l89 393q30 135 106 195.5t215 60.5h29l-17 -86q-86 -2 -129 -20.5t-69.5 -61.5t-44.5 -120l-74 -338q-30 -134 -91.5 -194.5t-164.5 -78.5v-4q68 -18 105.5 -68.5 t37.5 -121.5q0 -52 -24 -164l-47 -225q-13 -58 -13 -101q0 -61 37.5 -89t138.5 -28v-86h-20z" />
+<glyph unicode="|" d="M584 1561h100v-2071h-100v2071z" />
+<glyph unicode="}" horiz-adv-x="709" d="M332 1462q131 0 189.5 -51t58.5 -147q0 -41 -17 -115l-55 -252q-19 -95 -19 -127q0 -77 49.5 -118.5t149.5 -41.5l-20 -78q-125 0 -191 -48.5t-90 -157.5l-88 -394q-32 -139 -108.5 -197.5t-213.5 -58.5h-18v86q96 2 138 21t68.5 61t43.5 121l74 338q27 126 87.5 189.5 t168.5 82.5v5q-75 20 -109.5 72.5t-34.5 117.5q0 55 18 131l54 258q12 61 12 101q0 44 -18 69t-54 36t-116 11l20 86h21z" />
+<glyph unicode="~" d="M350 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t156 -57.5q126 -58 219 -58q54 0 107.5 29t117.5 96v-96q-111 -113 -233 -113q-117 0 -271 72q-62 29 -112.5 43t-108.5 14z" />
+<glyph unicode="&#xa1;" horiz-adv-x="502" d="M264 711h62l-203 -1086h-119zM432 1030q0 -56 -25 -88.5t-69 -32.5q-66 0 -66 72q0 55 25 89t68 34q67 0 67 -74z" />
+<glyph unicode="&#xa2;" d="M578 -20h-93l45 215q-132 25 -206 132.5t-74 272.5q0 184 63.5 341t178 253t256.5 111l36 178h90l-38 -176q116 -4 217 -43l-29 -90q-107 47 -217 47q-130 0 -233 -76t-162.5 -221t-59.5 -322q0 -164 74.5 -247t208.5 -83q127 0 264 60v-92q-118 -58 -281 -58z" />
+<glyph unicode="&#xa3;" d="M879 1479q170 0 313 -78l-39 -84l-54 26q-108 50 -231 50q-134 0 -220.5 -74.5t-117.5 -220.5l-73 -340h409l-18 -82h-408l-57 -268q-50 -225 -188 -314h759l-20 -94h-938l16 84q93 11 165.5 95.5t107.5 236.5l57 260h-199l17 82h198l76 350q41 187 155 279t290 92z" />
+<glyph unicode="&#xa4;" d="M262 723q0 118 74 225l-129 129l63 64l127 -129q105 78 230 78q118 0 223 -78l131 129l61 -62l-129 -129q78 -106 78 -227q0 -135 -78 -227l129 -127l-61 -62l-131 127q-104 -76 -223 -76q-126 0 -228 80l-129 -129l-61 62l127 127q-74 98 -74 225zM350 723 q0 -116 80 -196.5t197 -80.5t198.5 81t81.5 196q0 75 -36.5 140t-102.5 104t-141 39q-114 0 -195.5 -82t-81.5 -201z" />
+<glyph unicode="&#xa5;" d="M584 645l544 817h117l-559 -823h266l-16 -76h-315l-39 -190h317l-18 -84h-316l-59 -289h-105l64 289h-299l18 84h299l41 190h-301l17 76h258l-215 823h100z" />
+<glyph unicode="&#xa6;" d="M578 1561h100v-756h-100v756zM578 246h100v-756h-100v756z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M211 778q0 101 69.5 182t198.5 130q-64 31 -103.5 85.5t-39.5 120.5q0 74 46 134.5t132.5 94.5t202.5 34q163 0 289 -58l-31 -80q-138 54 -264 54q-124 0 -202.5 -46.5t-78.5 -123.5q0 -59 46 -104.5t183 -106.5q112 -52 158.5 -89.5t71 -85t24.5 -110.5 q0 -197 -249 -317q122 -64 122 -197q0 -86 -48 -153.5t-139.5 -105.5t-221.5 -38q-157 0 -275 53v99q47 -27 126 -46.5t153 -19.5q149 0 228 52.5t79 150.5q0 62 -42.5 106t-166.5 96q-155 65 -211.5 130t-56.5 159zM559 1038q-119 -30 -187.5 -97.5t-68.5 -154.5 q0 -57 24.5 -96.5t81 -73t187.5 -81.5q103 49 162 113.5t59 156.5q0 72 -57.5 126t-200.5 107z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M836 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM492 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M944 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q85 0 199 43v-88q-104 -45 -209 -45q-187 0 -288 116t-101 330q0 207 110 332t297 125q119 0 227 -52l-36 -83q-99 45 -191 45zM147 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM240 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaa;" horiz-adv-x="643" d="M487 1485q55 0 97.5 -29t66.5 -86h6l35 103h66l-137 -650h-72l22 125h-4q-96 -137 -223 -137q-80 0 -127 56.5t-47 164.5q0 189 90.5 321t226.5 132zM369 885q66 0 133.5 75.5t97.5 184.5q16 51 16 123q0 58 -36 100.5t-93 42.5q-94 0 -161.5 -111.5t-67.5 -271.5 q0 -143 111 -143z" />
+<glyph unicode="&#xab;" horiz-adv-x="860" d="M426 932l57 -49l-317 -336l213 -385l-64 -39l-254 418l2 26zM786 932l58 -49l-314 -336l209 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#xac;" d="M1028 772v-500h-100v400h-803v100h903z" />
+<glyph unicode="&#xad;" horiz-adv-x="629" d="M77 502zM77 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M758 731h112q93 0 144 46.5t51 135.5q0 172 -197 172h-110v-354zM1169 918q0 -80 -39.5 -141t-109.5 -93l237 -393h-120l-211 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM150 731q0 207 103.5 382t276.5 272.5t371 97.5q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-204 0 -376.5 100.5t-273.5 273t-101 377.5zM242 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaf;" horiz-adv-x="655" d="M1001 1556h-653l53 97h654z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M242 1190q0 120 85 206.5t208 86.5q122 0 207 -86.5t85 -206.5q0 -122 -85.5 -207.5t-206.5 -85.5q-122 0 -207.5 85.5t-85.5 207.5zM315 1190q0 -89 64.5 -153t155.5 -64q92 0 155.5 64t63.5 153q0 90 -64 155.5t-155 65.5q-90 0 -155 -65.5t-65 -155.5z" />
+<glyph unicode="&#xb1;" d="M528 629h-401v98h401v406h101v-406h401v-98h-401v-400h-101v400zM127 0v100h903v-100h-903z" />
+<glyph unicode="&#xb2;" horiz-adv-x="643" d="M604 586h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416z" />
+<glyph unicode="&#xb3;" horiz-adv-x="643" d="M705 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5 q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M580 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1171" d="M238 242q0 -82 48.5 -127t135.5 -45q110 0 207 64.5t162.5 182.5t101.5 285l104 485h99l-234 -1087h-78l29 205h-6q-164 -221 -404 -221q-85 0 -139 32.5t-76 89.5h-6q-18 -132 -51 -284l-63 -314h-97l338 1579h101l-152 -698q-20 -96 -20 -147z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1208 -260h-100v1722h-227v-1722h-101v819q-64 -18 -145 -18q-216 0 -318 125t-102 376q0 260 109 387t342 127h542v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="485" d="M207 625zM207 698q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M197 -289q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xb9;" horiz-adv-x="643" d="M512 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xba;" horiz-adv-x="655" d="M518 1479q105 0 165 -64t60 -180q0 -115 -40 -214t-114 -156.5t-175 -57.5q-114 0 -169 67.5t-55 184.5q0 112 41.5 209.5t116 154t170.5 56.5zM508 1405q-70 0 -124 -46.5t-84 -124.5t-30 -167q0 -186 156 -186q73 0 125.5 46.5t81.5 127.5t29 176q0 83 -39 128.5 t-115 45.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="860" d="M451 123l-58 49l314 336l-209 385l63 39l254 -418l-2 -27zM90 123l-57 49l313 336l-209 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1481" d="M129 0zM1319 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1121 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM1323 1462l-1087 -1462h-107l1086 1462h108zM509 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59 t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1458" d="M53 0zM1278 1h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416zM431 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5 t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59zM1247 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1458" d="M71 0zM1380 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1182 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM667 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35 q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5zM1407 1462l-1087 -1462 h-107l1086 1462h108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="799" d="M641 717l-6 -29q-28 -127 -79 -200t-161 -154q-118 -84 -175 -145.5t-86.5 -127.5t-29.5 -141q0 -106 65.5 -168.5t184.5 -62.5q141 0 308 100l38 -86q-85 -49 -170.5 -77.5t-187.5 -28.5q-159 0 -250.5 84.5t-91.5 228.5q0 133 70 240.5t227 220.5q85 61 133.5 109 t73 95t45.5 142h92zM713 1020q0 -56 -25.5 -88.5t-69.5 -32.5q-65 0 -65 72q0 56 25 89.5t67 33.5q68 0 68 -74z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM815 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM668 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM1007 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5 t92.5 -146.5v-29z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM911 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5 q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM879 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM535 1704q0 49 20.5 78t56.5 29q54 0 54 -64 q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM945 1600q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM867 1598 q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1640" d="M1403 0h-727l110 522h-444l-328 -522h-131l946 1462h883l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM408 627h401l156 741h-88z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1169" d="M170 0zM961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17zM752 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM891 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM654 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xca;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM1036 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM902 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM558 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xcc;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM525 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM419 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xce;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM738 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcf;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM604 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM260 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1352" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l144 676h-156l21 96h155l146 690h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-129 -598h378l-20 -96h-379l-125 -586h209z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1372" d="M102 0zM1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94zM1062 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14 t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM989 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM844 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1171 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1077 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z " />
+<glyph unicode="&#xd6;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1031 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM687 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd7;" d="M551 723l-330 332l70 69l330 -329l333 329l68 -67l-332 -334l332 -332l-68 -67l-333 329l-330 -327l-68 67z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1464" d="M1403 911q0 -187 -52 -365.5t-144.5 -304.5t-223 -193.5t-291.5 -67.5q-215 0 -348 112l-139 -170l-66 64l146 172q-113 149 -113 401q0 263 94 479.5t256.5 330.5t370.5 114q219 0 352 -121l133 168l70 -53l-145 -183q45 -51 72.5 -161t27.5 -222zM879 1389 q-134 0 -244 -59.5t-188.5 -170t-124.5 -267.5t-46 -319q0 -105 21.5 -191t56.5 -138l826 1032q-107 113 -301 113zM1294 901q0 85 -17.5 172t-43.5 129l-821 -1030q107 -100 293 -100q170 0 301 100t209.5 296.5t78.5 432.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM946 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303 v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM838 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5 t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1148 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54 v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1022 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29 q-55 0 -55 63zM678 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xdd;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM563 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xde;" horiz-adv-x="1145" d="M1087 836q0 -247 -153 -373.5t-457 -126.5h-201l-71 -336h-103l310 1462h102l-57 -266h213q200 0 308.5 -92.5t108.5 -267.5zM293 428h190q256 0 376 98.5t120 302.5q0 275 -330 275h-211z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1094" d="M-162 -492q-73 0 -119 23v90q53 -24 115 -24q79 0 123 50.5t66 153.5l305 1409q80 357 405 357q137 0 215 -61.5t78 -174.5q0 -75 -44.5 -140.5t-166.5 -148.5q-107 -76 -141.5 -124.5t-34.5 -106.5q0 -51 34 -88.5t93 -75.5q96 -63 138 -133.5t42 -165.5 q0 -170 -106.5 -269t-286.5 -99q-143 0 -234 65v109q45 -36 112.5 -59t129.5 -23q132 0 208.5 71t76.5 195q0 75 -31.5 129t-109.5 108q-82 58 -119 110.5t-37 121.5q0 57 21 103t60.5 88.5t137.5 113.5q101 70 131.5 116t30.5 101q0 70 -55 110t-150 40q-129 0 -205 -76 t-108 -229l-291 -1377q-33 -152 -103.5 -220.5t-179.5 -68.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM809 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM586 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM955 1243h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM858 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173 t-124.5 -55z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM835 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM491 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM927 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM849 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36 t34.5 93z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1602" d="M1155 -20q-123 0 -211 60t-117 165l-39 -205h-77l41 254h-9q-94 -142 -189 -208t-208 -66q-120 0 -182 94t-62 270q0 206 70.5 384.5t192.5 277t274 98.5q106 0 166 -56.5t74 -156.5h10l59 192h66l-35 -186q139 207 350 207q112 0 175 -61.5t63 -172.5 q0 -179 -158.5 -271.5t-470.5 -92.5h-39q-8 -51 -8 -96q0 -161 69.5 -250.5t217.5 -89.5q69 0 133.5 21t130.5 52v-94q-80 -37 -147 -53t-140 -16zM369 70q67 0 138.5 42t134 117.5t106 170.5t63.5 199t20 165q0 118 -49 186t-141 68q-123 0 -223 -86t-156.5 -240 t-56.5 -340q0 -150 42.5 -216t121.5 -66zM1317 1018q-119 0 -232 -115.5t-172 -308.5h48q263 0 383 67t120 203q0 71 -38.5 112.5t-108.5 41.5z" />
+<glyph unicode="&#xe7;" horiz-adv-x="887" d="M102 0zM477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57zM574 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xe8;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM751 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM532 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xea;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM904 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xeb;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM780 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM436 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xec;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM454 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM284 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xee;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM642 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xef;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM515 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM171 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1124" d="M713 1364q-54 60 -158 139l59 68q32 -26 81 -66t100 -94l266 150l39 -74l-256 -141q87 -116 131.5 -276t44.5 -335q0 -355 -141.5 -555t-399.5 -200q-177 0 -277 106.5t-100 294.5q0 170 63 301.5t178.5 203.5t262.5 72q107 0 188 -49.5t121 -142.5h5q0 139 -43 289 t-115 243l-295 -163l-39 73zM489 70q118 0 208.5 61t144 186.5t53.5 270.5q0 77 -35 142t-100 101.5t-156 36.5q-124 0 -213.5 -61.5t-137.5 -169.5t-48 -248q0 -153 73.5 -236t210.5 -83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1143" d="M76 0zM764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98zM874 1249q-40 0 -77.5 19t-75.5 45 q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM744 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM573 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM941 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM839 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM812 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM468 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf7;" d="M168 672v100h903v-100h-903zM522 373q0 106 96 106q48 0 73.5 -27.5t25.5 -78.5q0 -57 -29 -82t-70 -25q-96 0 -96 107zM522 1071q0 107 96 107q46 0 72.5 -27.5t26.5 -79.5q0 -57 -29 -81.5t-70 -24.5q-96 0 -96 106z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M164 127q-66 106 -66 276q0 191 73 358t197 257t281 90q150 0 250 -82l109 133l65 -53l-117 -143q70 -105 70 -263q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-163 0 -254 83l-110 -135l-64 54zM924 702q0 101 -35 179l-608 -742q67 -73 202 -73q127 0 225.5 77.5 t157 228t58.5 330.5zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -125 32 -197l605 739q-74 72 -197 72z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM774 1241h-66q-50 52 -114 144.5 t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM627 1262q66 51 150.5 142 t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM957 1241h-49q-70 60 -161 207 q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM827 1366q0 49 20.5 78t56.5 29 q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM483 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xfd;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM505 1262q66 51 150.5 142t129.5 165h137v-23 q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1163" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l434 2048h99q-114 -535 -164 -751h6q93 156 199 229.5t231 73.5q133 0 206 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-86 0 -172.5 -57.5t-162.5 -169.5t-111.5 -238t-35.5 -207 q0 -125 61.5 -200.5t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="&#xff;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM698 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77 t-55 -29q-55 0 -55 63zM354 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x131;" horiz-adv-x="475" d="M174 0h-98l231 1087h96z" />
+<glyph unicode="&#x152;" horiz-adv-x="1767" d="M1530 0h-666q-25 -6 -77.5 -13t-94.5 -7q-251 0 -385.5 149.5t-134.5 429.5q0 263 96 482t262 330.5t381 111.5q130 0 240 -21h688l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM705 72q68 0 116 12l271 1290q-110 15 -189 15q-182 0 -321.5 -98.5 t-222.5 -293.5t-83 -424q0 -245 109 -373t320 -128z" />
+<glyph unicode="&#x153;" horiz-adv-x="1720" d="M1262 -20q-135 0 -228 69t-125 201q-65 -127 -179 -198.5t-257 -71.5q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90q141 0 237 -74.5t126 -212.5q70 132 182.5 207.5t241.5 75.5q114 0 182 -61t68 -166q0 -181 -163.5 -276t-486.5 -95h-32 q-7 -38 -7 -98q0 -165 74 -251.5t213 -86.5q133 0 277 73v-94q-140 -69 -299 -69zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5q0 154 -73 237t-210 83zM1423 1018q-131 0 -243 -115t-162 -309h49q516 0 516 270 q0 70 -44.5 112t-115.5 42z" />
+<glyph unicode="&#x178;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM798 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM454 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M958 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M967 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM889 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M831 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2011;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2012;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M66 502l18 90h807l-17 -90h-808z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M68 502l18 90h1788l-16 -90h-1790z" />
+<glyph unicode="&#x2018;" horiz-adv-x="299" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x2019;" horiz-adv-x="299" d="M475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M246 238l4 -23q-40 -97 -115.5 -230t-161.5 -249h-73q68 110 131.5 248t101.5 254h113z" />
+<glyph unicode="&#x201c;" horiz-adv-x="631" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113zM467 961l-4 22q43 104 120 238.5t156 240.5h74q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x201d;" horiz-adv-x="631" d="M809 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113zM475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201e;" horiz-adv-x="776" d="M561 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 108 129 242.5t105 259.5h112zM227 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q73 119 135.5 254.5t98.5 247.5h112z" />
+<glyph unicode="&#x2022;" horiz-adv-x="793" d="M248 682q0 137 63 213t172 76q76 0 116 -39.5t40 -118.5q0 -125 -66 -207t-176 -82q-149 0 -149 158z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1489" d="M69 0zM69 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM569 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM1071 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="537" d="M451 932l57 -49l-318 -336l213 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="537" d="M94 123l-57 49l317 336l-213 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="274" d="M731 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="643" d="M657 815h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM459 887q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291z" />
+<glyph unicode="&#x20ac;" d="M991 1389q-186 0 -330.5 -120.5t-226.5 -346.5h457l-21 -82h-460q-30 -98 -39 -217h442l-20 -82h-424q0 -243 89 -356t265 -113q115 0 252 57v-94q-129 -55 -270 -55q-209 0 -325 139.5t-116 394.5v27h-184l16 82h172q5 101 35 217h-170l19 82h174q95 273 270 417 t399 144q166 0 287 -90l-53 -82q-102 78 -238 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M477 741h-86v643h-217v78h522v-78h-219v-643zM1077 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l223 606h125v-721h-86v398l4 207h-6l-227 -605h-74z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1133" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+<hkern g1="uniFB00" u2="&#x201d;" k="-123" />
+<hkern g1="uniFB00" u2="&#x2019;" k="-123" />
+<hkern g1="uniFB00" u2="&#x27;" k="-123" />
+<hkern g1="uniFB00" u2="&#x22;" k="-123" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000..43e8b9e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000..6bbc3cf
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000..25a3952
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansregular" horiz-adv-x="1171" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1096h166v-1096zM856 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5 q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1556h166v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1096h166v-1096zM1551 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1556h166v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="547" d="M326 403h-105l-51 1059h207zM152 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="821" d="M319 1462l-40 -528h-105l-41 528h186zM688 1462l-41 -528h-104l-41 528h186z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M981 899l-66 -340h283v-129h-307l-84 -430h-137l84 430h-303l-82 -430h-136l80 430h-262v129h287l68 340h-277v127h299l82 436h139l-82 -436h305l84 436h134l-84 -436h264v-127h-289zM475 559h303l66 340h-303z" />
+<glyph unicode="$" d="M1036 449q0 -136 -102 -224.5t-285 -111.5v-232h-129v223q-112 0 -217 17.5t-172 48.5v156q83 -37 191.5 -60.5t197.5 -23.5v440q-205 65 -287.5 151t-82.5 222q0 131 101.5 215t268.5 102v182h129v-180q184 -5 355 -74l-52 -131q-149 59 -303 70v-434q157 -50 235 -97.5 t115 -109t37 -149.5zM866 436q0 72 -44.5 116.5t-172.5 88.5v-389q217 30 217 184zM319 1057q0 -76 45 -122t156 -87v387q-99 -16 -150 -62.5t-51 -115.5z" />
+<glyph unicode="%" horiz-adv-x="1686" d="M242 1026q0 -170 37 -255t120 -85q164 0 164 340q0 338 -164 338q-83 0 -120 -84t-37 -254zM700 1026q0 -228 -76.5 -344.5t-224.5 -116.5q-140 0 -217.5 119t-77.5 342q0 227 74.5 342t220.5 115q145 0 223 -119t78 -338zM1122 440q0 -171 37 -255.5t121 -84.5t124 83.5 t40 256.5q0 171 -40 253.5t-124 82.5t-121 -82.5t-37 -253.5zM1581 440q0 -227 -76.5 -343.5t-224.5 -116.5q-142 0 -218.5 119t-76.5 341q0 227 74.5 342t220.5 115q142 0 221.5 -117.5t79.5 -339.5zM1323 1462l-811 -1462h-147l811 1462h147z" />
+<glyph unicode="&#x26;" horiz-adv-x="1495" d="M414 1171q0 -69 36 -131.5t123 -150.5q129 75 179.5 138.5t50.5 146.5q0 77 -51.5 125.5t-137.5 48.5q-89 0 -144.5 -48t-55.5 -129zM569 129q241 0 400 154l-437 424q-111 -68 -157 -112.5t-68 -95.5t-22 -116q0 -117 77.5 -185.5t206.5 -68.5zM113 379q0 130 69.5 230 t249.5 202q-85 95 -115.5 144t-48.5 102t-18 110q0 150 98 234t273 84q162 0 255 -83.5t93 -232.5q0 -107 -68 -197.5t-225 -183.5l407 -391q56 62 89.5 145.5t56.5 182.5h168q-68 -286 -205 -434l299 -291h-229l-185 178q-118 -106 -240 -152t-272 -46q-215 0 -333.5 106 t-118.5 293z" />
+<glyph unicode="'" horiz-adv-x="453" d="M319 1462l-40 -528h-105l-41 528h186z" />
+<glyph unicode="(" horiz-adv-x="606" d="M82 561q0 265 77.5 496t223.5 405h162q-144 -193 -216.5 -424t-72.5 -475q0 -240 74 -469t213 -418h-160q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="606" d="M524 561q0 -263 -77.5 -490t-223.5 -395h-160q139 188 213 417.5t74 469.5q0 244 -72.5 475t-216.5 424h162q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M657 1556l-43 -395l398 111l26 -182l-381 -31l248 -326l-172 -94l-176 362l-160 -362l-176 94l242 326l-377 31l29 182l391 -111l-43 395h194z" />
+<glyph unicode="+" d="M653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428z" />
+<glyph unicode="," horiz-adv-x="502" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="-" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="." horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="/" horiz-adv-x="752" d="M731 1462l-545 -1462h-166l545 1462h166z" />
+<glyph unicode="0" d="M1069 733q0 -379 -119.5 -566t-365.5 -187q-236 0 -359 191.5t-123 561.5q0 382 119 567t363 185q238 0 361.5 -193t123.5 -559zM270 733q0 -319 75 -464.5t239 -145.5q166 0 240.5 147.5t74.5 462.5t-74.5 461.5t-240.5 146.5q-164 0 -239 -144.5t-75 -463.5z" />
+<glyph unicode="1" d="M715 0h-162v1042q0 130 8 246q-21 -21 -47 -44t-238 -195l-88 114l387 299h140v-1462z" />
+<glyph unicode="2" d="M1061 0h-961v143l385 387q176 178 232 254t84 148t28 155q0 117 -71 185.5t-197 68.5q-91 0 -172.5 -30t-181.5 -109l-88 113q202 168 440 168q206 0 323 -105.5t117 -283.5q0 -139 -78 -275t-292 -344l-320 -313v-8h752v-154z" />
+<glyph unicode="3" d="M1006 1118q0 -140 -78.5 -229t-222.5 -119v-8q176 -22 261 -112t85 -236q0 -209 -145 -321.5t-412 -112.5q-116 0 -212.5 17.5t-187.5 61.5v158q95 -47 202.5 -71.5t203.5 -24.5q379 0 379 297q0 266 -418 266h-144v143h146q171 0 271 75.5t100 209.5q0 107 -73.5 168 t-199.5 61q-96 0 -181 -26t-194 -96l-84 112q90 71 207.5 111.5t247.5 40.5q213 0 331 -97.5t118 -267.5z" />
+<glyph unicode="4" d="M1130 336h-217v-336h-159v336h-711v145l694 989h176v-983h217v-151zM754 487v486q0 143 10 323h-8q-48 -96 -90 -159l-457 -650h545z" />
+<glyph unicode="5" d="M557 893q231 0 363.5 -114.5t132.5 -313.5q0 -227 -144.5 -356t-398.5 -129q-247 0 -377 79v160q70 -45 174 -70.5t205 -25.5q176 0 273.5 83t97.5 240q0 306 -375 306q-95 0 -254 -29l-86 55l55 684h727v-153h-585l-37 -439q115 23 229 23z" />
+<glyph unicode="6" d="M117 625q0 431 167.5 644.5t495.5 213.5q113 0 178 -19v-143q-77 25 -176 25q-235 0 -359 -146.5t-136 -460.5h12q110 172 348 172q197 0 310.5 -119t113.5 -323q0 -228 -124.5 -358.5t-336.5 -130.5q-227 0 -360 170.5t-133 474.5zM608 121q142 0 220.5 89.5t78.5 258.5 q0 145 -73 228t-218 83q-90 0 -165 -37t-119.5 -102t-44.5 -135q0 -103 40 -192t113.5 -141t167.5 -52z" />
+<glyph unicode="7" d="M285 0l606 1309h-797v153h973v-133l-598 -1329h-184z" />
+<glyph unicode="8" d="M584 1483q200 0 317 -93t117 -257q0 -108 -67 -197t-214 -162q178 -85 253 -178.5t75 -216.5q0 -182 -127 -290.5t-348 -108.5q-234 0 -360 102.5t-126 290.5q0 251 306 391q-138 78 -198 168.5t-60 202.5q0 159 117.5 253.5t314.5 94.5zM268 369q0 -120 83.5 -187 t234.5 -67q149 0 232 70t83 192q0 97 -78 172.5t-272 146.5q-149 -64 -216 -141.5t-67 -185.5zM582 1348q-125 0 -196 -60t-71 -160q0 -92 59 -158t218 -132q143 60 202.5 129t59.5 161q0 101 -72.5 160.5t-199.5 59.5z" />
+<glyph unicode="9" d="M1061 838q0 -858 -664 -858q-116 0 -184 20v143q80 -26 182 -26q240 0 362.5 148.5t133.5 455.5h-12q-55 -83 -146 -126.5t-205 -43.5q-194 0 -308 116t-114 324q0 228 127.5 360t335.5 132q149 0 260.5 -76.5t171.5 -223t60 -345.5zM569 1341q-143 0 -221 -92t-78 -256 q0 -144 72 -226.5t219 -82.5q91 0 167.5 37t120.5 101t44 134q0 105 -41 194t-114.5 140t-168.5 51z" />
+<glyph unicode=":" horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM152 989q0 135 118 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode=";" horiz-adv-x="545" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182zM147 989q0 135 119 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-58 0 -88.5 35t-30.5 100z" />
+<glyph unicode="&#x3c;" d="M1065 242l-961 422v98l961 479v-149l-782 -371l782 -328v-151z" />
+<glyph unicode="=" d="M119 858v137h930v-137h-930zM119 449v137h930v-137h-930z" />
+<glyph unicode="&#x3e;" d="M104 393l783 326l-783 373v149l961 -479v-98l-961 -422v151z" />
+<glyph unicode="?" horiz-adv-x="879" d="M289 403v54q0 117 36 192.5t134 159.5q136 115 171.5 173t35.5 140q0 102 -65.5 157.5t-188.5 55.5q-79 0 -154 -18.5t-172 -67.5l-59 135q189 99 395 99q191 0 297 -94t106 -265q0 -73 -19.5 -128.5t-57.5 -105t-164 -159.5q-101 -86 -133.5 -143t-32.5 -152v-33h-129z M240 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="@" horiz-adv-x="1841" d="M1720 729q0 -142 -44 -260t-124 -183t-184 -65q-86 0 -145 52t-70 133h-8q-40 -87 -114.5 -136t-176.5 -49q-150 0 -234.5 102.5t-84.5 278.5q0 204 118 331.5t310 127.5q68 0 154 -12.5t155 -34.5l-25 -470v-22q0 -178 133 -178q91 0 148 107.5t57 279.5q0 181 -74 317 t-210.5 209.5t-313.5 73.5q-223 0 -388 -92.5t-252 -264t-87 -396.5q0 -305 161 -469t464 -164q210 0 436 86v-133q-192 -84 -436 -84q-363 0 -563.5 199.5t-200.5 557.5q0 260 107 463t305 314.5t454 111.5q215 0 382.5 -90.5t259 -257t91.5 -383.5zM686 598 q0 -254 195 -254q207 0 225 313l14 261q-72 20 -157 20q-130 0 -203.5 -90t-73.5 -250z" />
+<glyph unicode="A" horiz-adv-x="1296" d="M1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473z" />
+<glyph unicode="B" horiz-adv-x="1327" d="M201 1462h413q291 0 421 -87t130 -275q0 -130 -72.5 -214.5t-211.5 -109.5v-10q333 -57 333 -350q0 -196 -132.5 -306t-370.5 -110h-510v1462zM371 836h280q180 0 259 56.5t79 190.5q0 123 -88 177.5t-280 54.5h-250v-479zM371 692v-547h305q177 0 266.5 68.5t89.5 214.5 q0 136 -91.5 200t-278.5 64h-291z" />
+<glyph unicode="C" horiz-adv-x="1292" d="M827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78z" />
+<glyph unicode="D" horiz-adv-x="1493" d="M1368 745q0 -362 -196.5 -553.5t-565.5 -191.5h-405v1462h448q341 0 530 -189t189 -528zM1188 739q0 286 -143.5 431t-426.5 145h-247v-1168h207q304 0 457 149.5t153 442.5z" />
+<glyph unicode="E" horiz-adv-x="1139" d="M1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152z" />
+<glyph unicode="F" horiz-adv-x="1057" d="M371 0h-170v1462h815v-151h-645v-535h606v-151h-606v-625z" />
+<glyph unicode="G" horiz-adv-x="1491" d="M844 766h497v-711q-116 -37 -236 -56t-278 -19q-332 0 -517 197.5t-185 553.5q0 228 91.5 399.5t263.5 262t403 90.5q234 0 436 -86l-66 -150q-198 84 -381 84q-267 0 -417 -159t-150 -441q0 -296 144.5 -449t424.5 -153q152 0 297 35v450h-327v152z" />
+<glyph unicode="H" horiz-adv-x="1511" d="M1311 0h-170v688h-770v-688h-170v1462h170v-622h770v622h170v-1462z" />
+<glyph unicode="I" horiz-adv-x="571" d="M201 0v1462h170v-1462h-170z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-12 -385q-94 0 -148 27v145q71 -20 148 -20q99 0 150.5 60t51.5 173v1462h170v-1448q0 -190 -96 -294.5t-276 -104.5z" />
+<glyph unicode="K" horiz-adv-x="1257" d="M1257 0h-200l-533 709l-153 -136v-573h-170v1462h170v-725l663 725h201l-588 -635z" />
+<glyph unicode="L" horiz-adv-x="1063" d="M201 0v1462h170v-1308h645v-154h-815z" />
+<glyph unicode="M" horiz-adv-x="1849" d="M848 0l-496 1296h-8q14 -154 14 -366v-930h-157v1462h256l463 -1206h8l467 1206h254v-1462h-170v942q0 162 14 352h-8l-500 -1294h-137z" />
+<glyph unicode="N" horiz-adv-x="1544" d="M1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462z" />
+<glyph unicode="O" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5z" />
+<glyph unicode="P" horiz-adv-x="1233" d="M1128 1036q0 -222 -151.5 -341.5t-433.5 -119.5h-172v-575h-170v1462h379q548 0 548 -426zM371 721h153q226 0 327 73t101 234q0 145 -95 216t-296 71h-190v-594z" />
+<glyph unicode="Q" horiz-adv-x="1595" d="M1470 733q0 -281 -113 -467t-319 -252l348 -362h-247l-285 330l-55 -2q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5 q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="R" horiz-adv-x="1266" d="M371 608v-608h-170v1462h401q269 0 397.5 -103t128.5 -310q0 -290 -294 -392l397 -657h-201l-354 608h-305zM371 754h233q180 0 264 71.5t84 214.5q0 145 -85.5 209t-274.5 64h-221v-559z" />
+<glyph unicode="S" horiz-adv-x="1124" d="M1026 389q0 -193 -140 -301t-380 -108q-260 0 -400 67v164q90 -38 196 -60t210 -22q170 0 256 64.5t86 179.5q0 76 -30.5 124.5t-102 89.5t-217.5 93q-204 73 -291.5 173t-87.5 261q0 169 127 269t336 100q218 0 401 -80l-53 -148q-181 76 -352 76q-135 0 -211 -58 t-76 -161q0 -76 28 -124.5t94.5 -89t203.5 -89.5q230 -82 316.5 -176t86.5 -244z" />
+<glyph unicode="T" horiz-adv-x="1133" d="M651 0h-170v1311h-463v151h1096v-151h-463v-1311z" />
+<glyph unicode="U" horiz-adv-x="1491" d="M1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170z" />
+<glyph unicode="V" horiz-adv-x="1219" d="M1036 1462h183l-527 -1462h-168l-524 1462h180l336 -946q58 -163 92 -317q36 162 94 323z" />
+<glyph unicode="W" horiz-adv-x="1896" d="M1477 0h-168l-295 979q-21 65 -47 164t-27 119q-22 -132 -70 -289l-286 -973h-168l-389 1462h180l231 -903q48 -190 70 -344q27 183 80 358l262 889h180l275 -897q48 -155 81 -350q19 142 72 346l230 901h180z" />
+<glyph unicode="X" horiz-adv-x="1182" d="M1174 0h-193l-393 643l-400 -643h-180l486 764l-453 698h188l363 -579l366 579h181l-453 -692z" />
+<glyph unicode="Y" horiz-adv-x="1147" d="M573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186z" />
+<glyph unicode="Z" horiz-adv-x="1169" d="M1087 0h-1005v133l776 1176h-752v153h959v-133l-776 -1175h798v-154z" />
+<glyph unicode="[" horiz-adv-x="674" d="M623 -324h-457v1786h457v-141h-289v-1503h289v-142z" />
+<glyph unicode="\" horiz-adv-x="752" d="M186 1462l547 -1462h-166l-544 1462h163z" />
+<glyph unicode="]" horiz-adv-x="674" d="M51 -182h289v1503h-289v141h457v-1786h-457v142z" />
+<glyph unicode="^" horiz-adv-x="1110" d="M49 551l434 922h99l477 -922h-152l-372 745l-334 -745h-152z" />
+<glyph unicode="_" horiz-adv-x="918" d="M922 -315h-926v131h926v-131z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M786 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="a" horiz-adv-x="1139" d="M850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85t88.5 238 v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47z" />
+<glyph unicode="b" horiz-adv-x="1255" d="M686 1114q216 0 335.5 -147.5t119.5 -417.5t-120.5 -419.5t-334.5 -149.5q-107 0 -195.5 39.5t-148.5 121.5h-12l-35 -141h-119v1556h166v-378q0 -127 -8 -228h8q116 164 344 164zM662 975q-170 0 -245 -97.5t-75 -328.5t77 -330.5t247 -99.5q153 0 228 111.5t75 320.5 q0 214 -75 319t-232 105z" />
+<glyph unicode="c" horiz-adv-x="975" d="M614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57z" />
+<glyph unicode="d" horiz-adv-x="1255" d="M922 147h-9q-115 -167 -344 -167q-215 0 -334.5 147t-119.5 418t120 421t334 150q223 0 342 -162h13l-7 79l-4 77v446h166v-1556h-135zM590 119q170 0 246.5 92.5t76.5 298.5v35q0 233 -77.5 332.5t-247.5 99.5q-146 0 -223.5 -113.5t-77.5 -320.5q0 -210 77 -317 t226 -107z" />
+<glyph unicode="e" horiz-adv-x="1149" d="M639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5t-200 83.5z " />
+<glyph unicode="f" horiz-adv-x="694" d="M670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129z" />
+<glyph unicode="g" horiz-adv-x="1122" d="M1073 1096v-105l-203 -24q28 -35 50 -91.5t22 -127.5q0 -161 -110 -257t-302 -96q-49 0 -92 8q-106 -56 -106 -141q0 -45 37 -66.5t127 -21.5h194q178 0 273.5 -75t95.5 -218q0 -182 -146 -277.5t-426 -95.5q-215 0 -331.5 80t-116.5 226q0 100 64 173t180 99 q-42 19 -70.5 59t-28.5 93q0 60 32 105t101 87q-85 35 -138.5 119t-53.5 192q0 180 108 277.5t306 97.5q86 0 155 -20h379zM199 -184q0 -89 75 -135t215 -46q209 0 309.5 62.5t100.5 169.5q0 89 -55 123.5t-207 34.5h-199q-113 0 -176 -54t-63 -155zM289 745q0 -115 65 -174 t181 -59q243 0 243 236q0 247 -246 247q-117 0 -180 -63t-63 -187z" />
+<glyph unicode="h" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-173 0 -252.5 -94t-79.5 -308v-573h-166v1556h166v-471q0 -85 -8 -141h10q49 79 139.5 124.5t206.5 45.5q201 0 301.5 -95.5t100.5 -303.5v-715h-166z" />
+<glyph unicode="i" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="j" horiz-adv-x="518" d="M43 -492q-95 0 -154 25v135q69 -20 136 -20q78 0 114.5 42.5t36.5 129.5v1276h166v-1264q0 -324 -299 -324zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="k" horiz-adv-x="1075" d="M340 561q43 61 131 160l354 375h197l-444 -467l475 -629h-201l-387 518l-125 -108v-410h-164v1556h164v-825q0 -55 -8 -170h8z" />
+<glyph unicode="l" horiz-adv-x="518" d="M342 0h-166v1556h166v-1556z" />
+<glyph unicode="m" horiz-adv-x="1905" d="M1573 0v713q0 131 -56 196.5t-174 65.5q-155 0 -229 -89t-74 -274v-612h-166v713q0 131 -56 196.5t-175 65.5q-156 0 -228.5 -93.5t-72.5 -306.5v-575h-166v1096h135l27 -150h8q47 80 132.5 125t191.5 45q257 0 336 -186h8q49 86 142 136t212 50q186 0 278.5 -95.5 t92.5 -305.5v-715h-166z" />
+<glyph unicode="n" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166z" />
+<glyph unicode="o" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z" />
+<glyph unicode="p" horiz-adv-x="1255" d="M686 -20q-107 0 -195.5 39.5t-148.5 121.5h-12q12 -96 12 -182v-451h-166v1588h135l23 -150h8q64 90 149 130t195 40q218 0 336.5 -149t118.5 -418q0 -270 -120.5 -419.5t-334.5 -149.5zM662 975q-168 0 -243 -93t-77 -296v-37q0 -231 77 -330.5t247 -99.5 q142 0 222.5 115t80.5 317q0 205 -80.5 314.5t-226.5 109.5z" />
+<glyph unicode="q" horiz-adv-x="1255" d="M590 119q166 0 242 89t81 300v37q0 230 -78 331t-247 101q-146 0 -223.5 -113.5t-77.5 -320.5t76.5 -315.5t226.5 -108.5zM565 -20q-212 0 -331 149t-119 416q0 269 120 420t334 151q225 0 346 -170h9l24 150h131v-1588h-166v469q0 100 11 170h-13q-115 -167 -346 -167z " />
+<glyph unicode="r" horiz-adv-x="836" d="M676 1116q73 0 131 -12l-23 -154q-68 15 -120 15q-133 0 -227.5 -108t-94.5 -269v-588h-166v1096h137l19 -203h8q61 107 147 165t189 58z" />
+<glyph unicode="s" horiz-adv-x="977" d="M883 299q0 -153 -114 -236t-320 -83q-218 0 -340 69v154q79 -40 169.5 -63t174.5 -23q130 0 200 41.5t70 126.5q0 64 -55.5 109.5t-216.5 107.5q-153 57 -217.5 99.5t-96 96.5t-31.5 129q0 134 109 211.5t299 77.5q177 0 346 -72l-59 -135q-165 68 -299 68 q-118 0 -178 -37t-60 -102q0 -44 22.5 -75t72.5 -59t192 -81q195 -71 263.5 -143t68.5 -181z" />
+<glyph unicode="t" horiz-adv-x="723" d="M530 117q44 0 85 6.5t65 13.5v-127q-27 -13 -79.5 -21.5t-94.5 -8.5q-318 0 -318 335v652h-157v80l157 69l70 234h96v-254h318v-129h-318v-645q0 -99 47 -152t129 -53z" />
+<glyph unicode="u" horiz-adv-x="1257" d="M332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168z" />
+<glyph unicode="v" horiz-adv-x="1026" d="M416 0l-416 1096h178l236 -650q80 -228 94 -296h8q11 53 69.5 219.5t262.5 726.5h178l-416 -1096h-194z" />
+<glyph unicode="w" horiz-adv-x="1593" d="M1071 0l-201 643q-19 59 -71 268h-8q-40 -175 -70 -270l-207 -641h-192l-299 1096h174q106 -413 161.5 -629t63.5 -291h8q11 57 35.5 147.5t42.5 143.5l201 629h180l196 -629q56 -172 76 -289h8q4 36 21.5 111t208.5 807h172l-303 -1096h-197z" />
+<glyph unicode="x" horiz-adv-x="1073" d="M440 561l-381 535h189l289 -420l288 420h187l-381 -535l401 -561h-188l-307 444l-310 -444h-188z" />
+<glyph unicode="y" horiz-adv-x="1032" d="M2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156z" />
+<glyph unicode="z" horiz-adv-x="958" d="M877 0h-795v113l598 854h-561v129h743v-129l-590 -838h605v-129z" />
+<glyph unicode="{" horiz-adv-x="776" d="M475 12q0 -102 58.5 -148t171.5 -48v-140q-190 2 -294 87t-104 239v303q0 104 -63 148.5t-183 44.5v141q130 2 188 48t58 142v306q0 155 108 241t290 86v-139q-230 -6 -230 -199v-295q0 -215 -223 -254v-12q223 -39 223 -254v-297z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M494 1556h141v-2052h-141v2052z" />
+<glyph unicode="}" horiz-adv-x="776" d="M522 575q-223 39 -223 254v295q0 193 -227 199v139q184 0 289.5 -87t105.5 -240v-306q0 -97 59 -142.5t189 -47.5v-141q-122 0 -185 -44.5t-63 -148.5v-303q0 -153 -102.5 -238.5t-292.5 -87.5v140q111 2 169 48t58 148v297q0 114 55 174t168 80v12z" />
+<glyph unicode="~" d="M338 713q-53 0 -116.5 -33.5t-117.5 -87.5v151q100 109 244 109q68 0 124.5 -14t145.5 -52q66 -28 115 -41.5t96 -13.5q54 0 118 32t118 89v-150q-102 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="547" d="M219 684h105l51 -1057h-207zM393 983q0 -135 -121 -135q-60 0 -90 35.5t-30 99.5q0 63 31.5 99t88.5 36q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xa2;" d="M971 240q-105 -54 -252 -60v-200h-133v206q-203 32 -299.5 168.5t-96.5 386.5q0 508 396 570v172h135v-164q75 -3 146 -19.5t120 -39.5l-49 -140q-133 51 -242 51q-172 0 -253 -105.5t-81 -322.5q0 -212 79.5 -313.5t246.5 -101.5q141 0 283 59v-147z" />
+<glyph unicode="&#xa3;" d="M682 1481q190 0 360 -84l-61 -133q-154 77 -297 77q-123 0 -185.5 -62t-62.5 -202v-295h422v-127h-422v-221q0 -100 -32.5 -168t-106.5 -112h795v-154h-1029v141q205 47 205 291v223h-198v127h198v316q0 178 112 280.5t302 102.5z" />
+<glyph unicode="&#xa4;" d="M184 723q0 122 74 229l-135 140l94 92l135 -133q104 73 234 73q127 0 229 -73l137 133l95 -92l-134 -138q74 -113 74 -231q0 -131 -74 -234l131 -135l-92 -92l-137 133q-102 -71 -229 -71q-134 0 -234 73l-135 -133l-92 92l133 136q-74 107 -74 231zM313 723 q0 -112 78.5 -192t194.5 -80t195 79.5t79 192.5q0 114 -80 195t-194 81q-116 0 -194.5 -82t-78.5 -194z" />
+<glyph unicode="&#xa5;" d="M584 735l379 727h174l-416 -770h262v-127h-317v-170h317v-127h-317v-268h-164v268h-316v127h316v170h-316v127h256l-411 770h178z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M494 1556h141v-776h-141v776zM494 281h141v-777h-141v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M139 809q0 86 43 154.5t121 105.5q-74 40 -116 95.5t-42 140.5q0 121 103.5 190.5t300.5 69.5q94 0 173.5 -14.5t176.5 -53.5l-53 -131q-98 39 -165.5 52.5t-143.5 13.5q-116 0 -174 -29.5t-58 -93.5q0 -60 61.5 -102t215.5 -97q186 -68 261 -143.5t75 -182.5 q0 -90 -41 -160.5t-115 -111.5q153 -81 153 -227q0 -140 -117 -216.5t-329 -76.5q-218 0 -346 65v148q78 -37 175 -59.5t179 -22.5q134 0 204.5 38t70.5 109q0 46 -24 75t-78 58t-169 72q-142 52 -209 97t-100 102t-33 135zM285 829q0 -77 66 -129.5t233 -113.5l49 -19 q137 80 137 191q0 83 -73.5 139t-258.5 113q-68 -19 -110.5 -69t-42.5 -112z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M309 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM690 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M893 1059q-125 0 -192.5 -87t-67.5 -241q0 -168 63.5 -249t194.5 -81q86 0 211 45v-124q-48 -20 -98.5 -34t-120.5 -14q-194 0 -298 120.5t-104 336.5q0 209 110.5 332t301.5 123q128 0 246 -60l-58 -118q-108 51 -188 51zM100 731q0 200 100 375t275 276t377 101 q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87 t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="725" d="M532 801l-24 84q-92 -97 -232 -97q-95 0 -150.5 49.5t-55.5 151.5t77 154.5t242 58.5l117 4v39q0 133 -148 133q-100 0 -204 -51l-43 96q114 56 247 56q130 0 198.5 -52.5t68.5 -173.5v-452h-93zM193 989q0 -100 112 -100q201 0 201 180v49l-98 -4q-112 -4 -163.5 -32.5 t-51.5 -92.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="1018" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27zM477 551l344 407l117 -69l-287 -350l287 -351l-117 -71l-344 407v27z" />
+<glyph unicode="&#xac;" d="M1065 791v-527h-137v389h-824v138h961z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M84 473zM84 473v152h491v-152h-491z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M723 762h108q80 0 128.5 41.5t48.5 105.5q0 75 -43 107.5t-136 32.5h-106v-287zM1157 913q0 -80 -42.5 -141.5t-119.5 -91.5l238 -395h-168l-207 354h-135v-354h-148v891h261q166 0 243.5 -65t77.5 -198zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v127h1036v-127z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M127 1171q0 130 90.5 221t220.5 91t221 -90.5t91 -221.5q0 -84 -41 -155.5t-114 -113.5t-157 -42q-130 0 -220.5 90t-90.5 221zM242 1171q0 -82 58.5 -139t139.5 -57q80 0 137.5 56.5t57.5 139.5q0 84 -56.5 140.5t-138.5 56.5q-83 0 -140.5 -57t-57.5 -140z" />
+<glyph unicode="&#xb1;" d="M104 1zM653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428zM104 1v138h961v-138h-961z" />
+<glyph unicode="&#xb2;" horiz-adv-x="711" d="M653 586h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xb3;" horiz-adv-x="711" d="M627 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1268" d="M342 381q0 -262 254 -262q171 0 250.5 94.5t79.5 306.5v576h166v-1096h-136l-26 147h-10q-111 -167 -340 -167q-150 0 -238 92h-10q10 -84 10 -244v-320h-166v1588h166v-715z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1120 -260h-114v1712h-213v-1712h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="545" d="M152 723q0 66 31 100.5t87 34.5q58 0 90.5 -34.5t32.5 -100.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="465" d="M436 -289q0 -97 -76.5 -150t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="711" d="M338 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96z" />
+<glyph unicode="&#xba;" horiz-adv-x="768" d="M702 1135q0 -164 -85.5 -255.5t-235.5 -91.5q-146 0 -230.5 93t-84.5 254q0 163 84 253.5t235 90.5q152 0 234.5 -91t82.5 -253zM188 1135q0 -122 45.5 -183t149.5 -61q105 0 151 61t46 183q0 123 -46 182t-151 59q-103 0 -149 -59t-46 -182z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1018" d="M936 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27zM541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1597" d="M75 0zM1298 1462l-903 -1462h-143l903 1462h143zM337 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1489 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1219 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45 t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1597" d="M46 0zM1230 1462l-903 -1462h-143l903 1462h143zM308 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1499 1h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88 q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1597" d="M26 0zM620 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5zM1390 1462l-903 -1462h-143l903 1462h143zM1569 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1299 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbf;" horiz-adv-x="879" d="M590 684v-51q0 -122 -37.5 -196t-134.5 -158q-121 -106 -151.5 -143.5t-43 -76t-12.5 -94.5q0 -100 66 -156.5t188 -56.5q80 0 155 19t173 67l59 -135q-197 -96 -395 -96q-190 0 -298 93t-108 263q0 70 17.5 122.5t49.5 97t76.5 85.5t98.5 88q101 88 133.5 146t32.5 151 v31h131zM639 983q0 -135 -121 -135q-59 0 -90 34.5t-31 100.5q0 64 33 99.5t88 35.5q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM724 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM526 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM303 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186 h-115v23z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM792 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5 q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM364 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5z M745 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM870 1587q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5z M762 1585q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1788" d="M1665 0h-750v465h-514l-227 -465h-176l698 1462h969v-151h-580v-471h541v-150h-541v-538h580v-152zM469 618h446v693h-118z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1292" d="M125 0zM827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78zM950 -289q0 -97 -76.5 -150 t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM713 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM456 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM263 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM327 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM708 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM398 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="571" d="M179 0zM201 0v1462h170v-1462h-170zM179 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="571" d="M0 0zM201 0v1462h170v-1462h-170zM-57 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcf;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM5 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM386 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1479" d="M1352 745q0 -362 -196.5 -553.5t-565.5 -191.5h-389v649h-154v150h154v663h434q337 0 527 -187.5t190 -529.5zM1171 739q0 576 -569 576h-231v-516h379v-150h-379v-502h190q610 0 610 592z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1544" d="M201 0zM1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462zM935 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41 t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM907 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM659 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM448 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM942 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM522 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM903 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd7;" d="M940 1176l96 -99l-352 -354l350 -352l-96 -99l-354 351l-348 -351l-101 99l350 352l-352 352l100 101l353 -355z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-235 0 -383 100l-101 -141l-120 79l108 154q-178 198 -178 563q0 357 176 553.5t500 196.5q209 0 366 -94l97 135l120 -80l-106 -148q192 -202 192 -565zM1290 733q0 272 -110 426l-672 -948q115 -82 291 -82q243 0 367 153 t124 451zM305 733q0 -262 101 -416l669 943q-106 73 -274 73q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM856 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM600 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM393 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186 q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM461 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5 t-26.5 74.5zM842 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM442 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1251" d="M1145 784q0 -227 -151.5 -346t-438.5 -119h-184v-319h-170v1462h170v-256h215q281 0 420 -103.5t139 -318.5zM371 465h168q226 0 327 71.5t101 235.5q0 149 -95 218t-297 69h-204v-594z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1274" d="M1049 1266q0 -135 -143 -250q-88 -70 -116 -103.5t-28 -66.5q0 -32 13.5 -53t49 -49.5t113.5 -79.5q140 -95 191 -173.5t51 -179.5q0 -160 -97 -245.5t-276 -85.5q-188 0 -295 69v154q63 -39 141 -62.5t150 -23.5q215 0 215 182q0 75 -41.5 128.5t-151.5 123.5 q-127 82 -175 143.5t-48 145.5q0 63 34.5 116t105.5 106q75 57 107 102t32 98q0 80 -68 122.5t-195 42.5q-276 0 -276 -223v-1204h-166v1202q0 178 110 271.5t332 93.5q206 0 318.5 -78.5t112.5 -222.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM672 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM436 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM228 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM721 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99 q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM279 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM660 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75 q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM804 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM696 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5 t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1757" d="M94 303q0 161 124 250.5t378 97.5l184 6v68q0 129 -58 190.5t-177 61.5q-144 0 -307 -84l-52 127q74 41 173.5 67.5t197.5 26.5q130 0 212.5 -43.5t123.5 -138.5q53 88 138.5 136t195.5 48q192 0 308 -133.5t116 -355.5v-107h-701q8 -395 322 -395q91 0 169.5 17.5 t162.5 56.5v-148q-86 -38 -160.5 -54.5t-175.5 -16.5q-289 0 -414 233q-81 -127 -179.5 -180t-232.5 -53q-163 0 -255.5 85t-92.5 238zM268 301q0 -95 53.5 -139.5t141.5 -44.5q145 0 229 84.5t84 238.5v99l-158 -7q-186 -8 -268 -62.5t-82 -168.5zM1225 977 q-121 0 -190.5 -83t-80.5 -241h519q0 156 -64 240t-184 84z" />
+<glyph unicode="&#xe7;" horiz-adv-x="975" d="M115 0zM614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57zM762 -289q0 -97 -76.5 -150t-226.5 -53 q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM711 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM471 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM259 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM319 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM700 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM355 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="518" d="M169 0zM342 0h-166v1096h166v-1096zM169 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-77 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xef;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-20 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM361 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1221" d="M1122 563q0 -281 -130.5 -432t-377.5 -151q-222 0 -361.5 134.5t-139.5 360.5q0 230 131.5 361t351.5 131q226 0 326 -121l8 4q-57 214 -262 405l-271 -155l-73 108l233 133q-92 62 -186 111l69 117q156 -73 258 -148l238 138l76 -107l-207 -119q152 -143 234.5 -342 t82.5 -428zM954 512q0 147 -90 232t-246 85q-337 0 -337 -360q0 -167 87.5 -258.5t249.5 -91.5q175 0 255.5 100.5t80.5 292.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1257" d="M176 0zM926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166zM802 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98 q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M742 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M479 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M282 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M773 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M336 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM717 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf7;" d="M104 653v138h961v-138h-961zM471 373q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5zM471 1071q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5z " />
+<glyph unicode="&#xf8;" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-154 0 -266 69l-84 -117l-114 78l94 131q-129 152 -129 408q0 268 134 417.5t372 149.5q154 0 270 -76l84 119l117 -76l-97 -133q127 -152 127 -401zM287 549q0 -171 53 -273l465 646q-75 53 -189 53q-163 0 -246 -107 t-83 -319zM950 549q0 164 -51 264l-465 -643q71 -51 184 -51q163 0 247.5 109.5t84.5 320.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM726 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM506 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM286 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119 q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM342 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5 q-37 0 -63.5 24.5t-26.5 74.5zM723 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM411 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147 h-111v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1255" d="M344 948q66 89 151 128.5t191 39.5q215 0 335 -150t120 -417q0 -268 -120.5 -418.5t-334.5 -150.5q-222 0 -344 161h-12l4 -34q8 -77 8 -140v-459h-166v2048h166v-466q0 -52 -6 -142h8zM664 975q-168 0 -244 -92t-78 -293v-41q0 -231 77 -330.5t247 -99.5q303 0 303 432 q0 215 -74 319.5t-231 104.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM234 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM615 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096z" />
+<glyph unicode="&#x152;" horiz-adv-x="1890" d="M1767 0h-768q-102 -20 -194 -20q-327 0 -503.5 196.5t-176.5 558.5q0 360 174 555t494 195q102 0 192 -23h782v-151h-589v-471h551v-150h-551v-538h589v-152zM811 1333q-249 0 -377.5 -152.5t-128.5 -447.5q0 -297 128.5 -450.5t375.5 -153.5q112 0 199 33v1141 q-87 30 -197 30z" />
+<glyph unicode="&#x153;" horiz-adv-x="1929" d="M1430 -20q-293 0 -418 235q-62 -116 -166.5 -175.5t-241.5 -59.5q-223 0 -357 152.5t-134 416.5q0 265 131 415t366 150q131 0 233.5 -59.5t164.5 -173.5q58 112 154 172.5t222 60.5q201 0 320 -132.5t119 -358.5v-105h-729q8 -393 338 -393q94 0 174.5 17.5t167.5 56.5 v-148q-88 -39 -164 -55t-180 -16zM287 549q0 -211 76 -320.5t243 -109.5q163 0 239.5 106.5t76.5 315.5q0 221 -77.5 327.5t-242.5 106.5q-166 0 -240.5 -108t-74.5 -318zM1382 975q-127 0 -199.5 -82t-84.5 -240h544q0 158 -66 240t-194 82z" />
+<glyph unicode="&#x178;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM294 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM675 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1212" d="M268 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M813 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM705 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1212" d="M788 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 473v152h860v-152h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 473v152h1884v-152h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182z" />
+<glyph unicode="&#x201a;" horiz-adv-x="502" d="M63 0zM350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="&#x201c;" horiz-adv-x="717" d="M406 961l-15 22q56 215 178 479h123q-30 -115 -59.5 -259.5t-42.5 -241.5h-184zM37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x201d;" horiz-adv-x="717" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 1462l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x201e;" horiz-adv-x="829" d="M25 0zM309 238l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 238l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M164 748q0 121 56.5 184t164.5 63q105 0 163 -62t58 -185q0 -119 -57.5 -183.5t-163.5 -64.5q-107 0 -164 65.5t-57 182.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1606" d="M152 0zM152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM682 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM1213 106 q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="623" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="623" d="M541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M655 1462l-903 -1462h-143l903 1462h143z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="711" d="M692 788h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM422 905v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M795 1333q-319 0 -398 -403h510v-129h-524l-2 -57v-64l2 -45h463v-129h-447q37 -180 138.5 -278.5t271.5 -98.5q156 0 309 66v-150q-146 -65 -317 -65q-237 0 -381.5 134.5t-190.5 391.5h-166v129h152l-2 42v44l2 80h-152v129h164q39 261 185 407t383 146q201 0 366 -97 l-71 -139q-166 86 -295 86z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1589" d="M369 741h-123v615h-209v106h543v-106h-211v-615zM969 741l-201 559h-8l6 -129v-430h-119v721h187l196 -559l203 559h180v-721h-127v420l6 137h-8l-211 -557h-104z" />
+<glyph unicode="&#x2212;" d="M104 653v138h961v-138h-961z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1255" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000..e231183
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
Binary files differ
diff --git a/doc/1.3.0/guacamole-common-js/index.html b/doc/1.3.0/guacamole-common-js/index.html
new file mode 100644
index 0000000..ed424cc
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onrequired">onrequired</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Tunnel.html#event:onuuid">onuuid</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onuuid">onuuid</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.6</a> on Mon Dec 21 2020 15:19:53 GMT-0800 (Pacific Standard Time)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.3.0/guacamole-common-js/scripts/linenumber.js b/doc/1.3.0/guacamole-common-js/scripts/linenumber.js
new file mode 100644
index 0000000..4354785
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/scripts/linenumber.js
@@ -0,0 +1,25 @@
+/*global document */
+(() => {
+    const source = document.getElementsByClassName('prettyprint source linenums');
+    let i = 0;
+    let lineNumber = 0;
+    let lineId;
+    let lines;
+    let totalLines;
+    let anchorHash;
+
+    if (source && source[0]) {
+        anchorHash = document.location.hash.substring(1);
+        lines = source[0].getElementsByTagName('li');
+        totalLines = lines.length;
+
+        for (; i < totalLines; i++) {
+            lineNumber++;
+            lineId = `line${lineNumber}`;
+            lines[i].id = lineId;
+            if (lineId === anchorHash) {
+                lines[i].className += ' selected';
+            }
+        }
+    }
+})();
diff --git a/doc/1.3.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt b/doc/1.3.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/doc/1.3.0/guacamole-common-js/scripts/prettify/lang-css.js b/doc/1.3.0/guacamole-common-js/scripts/prettify/lang-css.js
new file mode 100644
index 0000000..041e1f5
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/scripts/prettify/lang-css.js
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/doc/1.3.0/guacamole-common-js/scripts/prettify/prettify.js b/doc/1.3.0/guacamole-common-js/scripts/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/scripts/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/doc/1.3.0/guacamole-common-js/styles/jsdoc-default.css b/doc/1.3.0/guacamole-common-js/styles/jsdoc-default.css
new file mode 100644
index 0000000..7d1729d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/styles/jsdoc-default.css
@@ -0,0 +1,358 @@
+@font-face {
+    font-family: 'Open Sans';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Regular-webfont.eot');
+    src:
+        local('Open Sans'),
+        local('OpenSans'),
+        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
+}
+
+@font-face {
+    font-family: 'Open Sans Light';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Light-webfont.eot');
+    src:
+        local('Open Sans Light'),
+        local('OpenSans Light'),
+        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
+}
+
+html
+{
+    overflow: auto;
+    background-color: #fff;
+    font-size: 14px;
+}
+
+body
+{
+    font-family: 'Open Sans', sans-serif;
+    line-height: 1.5;
+    color: #4d4e53;
+    background-color: white;
+}
+
+a, a:visited, a:active {
+    color: #0095dd;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+header
+{
+    display: block;
+    padding: 0px 4px;
+}
+
+tt, code, kbd, samp {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.class-description {
+    font-size: 130%;
+    line-height: 140%;
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.class-description:empty {
+    margin: 0;
+}
+
+#main {
+    float: left;
+    width: 70%;
+}
+
+article dl {
+    margin-bottom: 40px;
+}
+
+article img {
+  max-width: 100%;
+}
+
+section
+{
+    display: block;
+    background-color: #fff;
+    padding: 12px 24px;
+    border-bottom: 1px solid #ccc;
+    margin-right: 30px;
+}
+
+.variation {
+    display: none;
+}
+
+.signature-attributes {
+    font-size: 60%;
+    color: #aaa;
+    font-style: italic;
+    font-weight: lighter;
+}
+
+nav
+{
+    display: block;
+    float: right;
+    margin-top: 28px;
+    width: 30%;
+    box-sizing: border-box;
+    border-left: 1px solid #ccc;
+    padding-left: 16px;
+}
+
+nav ul {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
+    font-size: 100%;
+    line-height: 17px;
+    padding: 0;
+    margin: 0;
+    list-style-type: none;
+}
+
+nav ul a, nav ul a:visited, nav ul a:active {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    line-height: 18px;
+    color: #4D4E53;
+}
+
+nav h3 {
+    margin-top: 12px;
+}
+
+nav li {
+    margin-top: 6px;
+}
+
+footer {
+    display: block;
+    padding: 6px;
+    margin-top: 12px;
+    font-style: italic;
+    font-size: 90%;
+}
+
+h1, h2, h3, h4 {
+    font-weight: 200;
+    margin: 0;
+}
+
+h1
+{
+    font-family: 'Open Sans Light', sans-serif;
+    font-size: 48px;
+    letter-spacing: -2px;
+    margin: 12px 24px 20px;
+}
+
+h2, h3.subsection-title
+{
+    font-size: 30px;
+    font-weight: 700;
+    letter-spacing: -1px;
+    margin-bottom: 12px;
+}
+
+h3
+{
+    font-size: 24px;
+    letter-spacing: -0.5px;
+    margin-bottom: 12px;
+}
+
+h4
+{
+    font-size: 18px;
+    letter-spacing: -0.33px;
+    margin-bottom: 12px;
+    color: #4d4e53;
+}
+
+h5, .container-overview .subsection-title
+{
+    font-size: 120%;
+    font-weight: bold;
+    letter-spacing: -0.01em;
+    margin: 8px 0 3px 0;
+}
+
+h6
+{
+    font-size: 100%;
+    letter-spacing: -0.01em;
+    margin: 6px 0 3px 0;
+    font-style: italic;
+}
+
+table
+{
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+td, th
+{
+    border: 1px solid #ddd;
+    margin: 0px;
+    text-align: left;
+    vertical-align: top;
+    padding: 4px 6px;
+    display: table-cell;
+}
+
+thead tr
+{
+    background-color: #ddd;
+    font-weight: bold;
+}
+
+th { border-right: 1px solid #aaa; }
+tr > th:last-child { border-right: 1px solid #ddd; }
+
+.ancestors, .attribs { color: #999; }
+.ancestors a, .attribs a
+{
+    color: #999 !important;
+    text-decoration: none;
+}
+
+.clear
+{
+    clear: both;
+}
+
+.important
+{
+    font-weight: bold;
+    color: #950B02;
+}
+
+.yes-def {
+    text-indent: -1000px;
+}
+
+.type-signature {
+    color: #aaa;
+}
+
+.name, .signature {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.details { margin-top: 14px; border-left: 2px solid #DDD; }
+.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }
+.details dd { margin-left: 70px; }
+.details ul { margin: 0; }
+.details ul { list-style-type: none; }
+.details li { margin-left: 30px; padding-top: 6px; }
+.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
+
+.description {
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.code-caption
+{
+    font-style: italic;
+    font-size: 107%;
+    margin: 0;
+}
+
+.source
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.source code
+{
+    font-size: 100%;
+    line-height: 18px;
+    display: block;
+    padding: 4px 12px;
+    margin: 0;
+    background-color: #fff;
+    color: #4D4E53;
+}
+
+.prettyprint code span.line
+{
+  display: inline-block;
+}
+
+.prettyprint.linenums
+{
+  padding-left: 70px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.prettyprint.linenums ol
+{
+  padding-left: 0;
+}
+
+.prettyprint.linenums li
+{
+  border-left: 3px #ddd solid;
+}
+
+.prettyprint.linenums li.selected,
+.prettyprint.linenums li.selected *
+{
+  background-color: lightyellow;
+}
+
+.prettyprint.linenums li *
+{
+  -webkit-user-select: text;
+  -moz-user-select: text;
+  -ms-user-select: text;
+  user-select: text;
+}
+
+.params .name, .props .name, .name code {
+    color: #4D4E53;
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    font-size: 100%;
+}
+
+.params td.description > p:first-child,
+.props td.description > p:first-child
+{
+    margin-top: 0;
+    padding-top: 0;
+}
+
+.params td.description > p:last-child,
+.props td.description > p:last-child
+{
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.disabled {
+    color: #454545;
+}
diff --git a/doc/1.3.0/guacamole-common-js/styles/prettify-jsdoc.css b/doc/1.3.0/guacamole-common-js/styles/prettify-jsdoc.css
new file mode 100644
index 0000000..5a2526e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/styles/prettify-jsdoc.css
@@ -0,0 +1,111 @@
+/* JSDoc prettify.js theme */
+
+/* plain text */
+.pln {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* string content */
+.str {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a keyword */
+.kwd {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a comment */
+.com {
+  font-weight: normal;
+  font-style: italic;
+}
+
+/* a type name */
+.typ {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a literal value */
+.lit {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* punctuation */
+.pun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp open bracket */
+.opn {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp close bracket */
+.clo {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a markup tag name */
+.tag {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute name */
+.atn {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute value */
+.atv {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a declaration */
+.dec {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a variable name */
+.var {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a function name */
+.fun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/doc/1.3.0/guacamole-common-js/styles/prettify-tomorrow.css b/doc/1.3.0/guacamole-common-js/styles/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/doc/1.3.0/guacamole-common-js/styles/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+  color: #4d4d4c; }
+
+@media screen {
+  /* string content */
+  .str {
+    color: #718c00; }
+
+  /* a keyword */
+  .kwd {
+    color: #8959a8; }
+
+  /* a comment */
+  .com {
+    color: #8e908c; }
+
+  /* a type name */
+  .typ {
+    color: #4271ae; }
+
+  /* a literal value */
+  .lit {
+    color: #f5871f; }
+
+  /* punctuation */
+  .pun {
+    color: #4d4d4c; }
+
+  /* lisp open bracket */
+  .opn {
+    color: #4d4d4c; }
+
+  /* lisp close bracket */
+  .clo {
+    color: #4d4d4c; }
+
+  /* a markup tag name */
+  .tag {
+    color: #c82829; }
+
+  /* a markup attribute name */
+  .atn {
+    color: #f5871f; }
+
+  /* a markup attribute value */
+  .atv {
+    color: #3e999f; }
+
+  /* a declaration */
+  .dec {
+    color: #f5871f; }
+
+  /* a variable name */
+  .var {
+    color: #c82829; }
+
+  /* a function name */
+  .fun {
+    color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+  .str {
+    color: #060; }
+
+  .kwd {
+    color: #006;
+    font-weight: bold; }
+
+  .com {
+    color: #600;
+    font-style: italic; }
+
+  .typ {
+    color: #404;
+    font-weight: bold; }
+
+  .lit {
+    color: #044; }
+
+  .pun, .opn, .clo {
+    color: #440; }
+
+  .tag {
+    color: #006;
+    font-weight: bold; }
+
+  .atn {
+    color: #404; }
+
+  .atv {
+    color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+  background: white;
+  font-family: Consolas, Monaco, 'Andale Mono', monospace;
+  font-size: 12px;
+  line-height: 1.5;
+  border: 1px solid #ccc;
+  padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+  /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+  /* */ }
diff --git a/doc/1.3.0/guacamole-common/allclasses-frame.html b/doc/1.3.0/guacamole-common/allclasses-frame.html
new file mode 100644
index 0000000..2c3b785
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/allclasses-frame.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/allclasses-noframe.html b/doc/1.3.0/guacamole-common/allclasses-noframe.html
new file mode 100644
index 0000000..14517a4
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/allclasses-noframe.html
@@ -0,0 +1,78 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/constant-values.html b/doc/1.3.0/guacamole-common/constant-values.html
new file mode 100644
index 0000000..f9ec35b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/constant-values.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></code></td>
+<td class="colLast"><code>64</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></code></td>
+<td class="colLast"><code>8192</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/deprecated-list.html b/doc/1.3.0/guacamole-common/deprecated-list.html
new file mode 100644
index 0000000..b85c260
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/deprecated-list.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/help-doc.html b/doc/1.3.0/guacamole-common/help-doc.html
new file mode 100644
index 0000000..bc89c94
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/help-doc.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/index-all.html b/doc/1.3.0/guacamole-common/index-all.html
new file mode 100644
index 0000000..d9c350a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/index-all.html
@@ -0,0 +1,1478 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel()</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast(GuacamoleProtocolVersion)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#available--">available()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration, GuacamoleClientInformation)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>
+<div class="block">Returns a new tunnel for the given session.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleSocket implementation which simply delegates all function calls to
+ an underlying GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#DelegatingGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">DelegatingGuacamoleSocket(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleSocket such that all function calls against
+ this DelegatingGuacamoleSocket will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel(GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy()</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket(GuacamoleSocket, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></dt>
+<dd>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader(GuacamoleReader, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket(GuacamoleSocket, GuacamoleFilter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter(GuacamoleWriter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode(int)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the underlying GuacamoleSocket wrapped by this
+ DelegatingGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the major version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the minor version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the patch version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getProtocol--">getProtocol()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocol--">getProtocol()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel(String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration(GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a> - Interface in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a> - Class in <a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></dt>
+<dd>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet()</a></span> - Constructor for class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction(String, String...)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction(String, List&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Parser for the Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion(int, int, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a> - Class in <a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></dt>
+<dd>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint()</a></span> - Constructor for class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of characters per instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span> - Static variable in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported(GuacamoleProtocolVersion)</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#next--">next()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose(Session, CloseReason)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage(String)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a> - package org.apache.guacamole</dt>
+<dd>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> - package org.apache.guacamole.io</dt>
+<dd>
+<div class="block">All classes relating directly to data input or output.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> - package org.apache.guacamole.net</dt>
+<dd>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> - package org.apache.guacamole.protocol</dt>
+<dd>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> - package org.apache.guacamole.servlet</dt>
+<dd>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> - package org.apache.guacamole.websocket</dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion(String)</a></span> - Static method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#read--">read()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader(Reader)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError(HttpServletResponse, int, int, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen height.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen width.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter(String, String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_3_0">VERSION_1_3_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.3.0, which introduces the "required" instruction
+ allowing the server to explicitly request connection parameters from the
+ client.</div>
+</dd>
+</dl>
+<a name="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter(Writer)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/index.html b/doc/1.3.0/guacamole-common/index.html
new file mode 100644
index 0000000..54a2efa
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-common 1.3.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..a0cba0d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientBadTypeException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientBadTypeException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientBadTypeException" class="title">Class GuacamoleClientBadTypeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientBadTypeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientBadTypeException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientBadTypeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
new file mode 100644
index 0000000..6c1a037
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientException" class="title">Class GuacamoleClientException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request. Such an error, if correctable, usually
+ requires correction on the client side, not the server.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..b20cca3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientOverrunException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientOverrunException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientOverrunException" class="title">Class GuacamoleClientOverrunException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientOverrunException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientOverrunException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client has sent too much data. This
+ usually indicates that a server-side buffer is not large enough to
+ accommodate the data, or protocol specifications prohibit data of the size
+ received.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientOverrunException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..91bc81b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTimeoutException" class="title">Class GuacamoleClientTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..32b4776
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTooManyException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTooManyException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTooManyException" class="title">Class GuacamoleClientTooManyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTooManyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTooManyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTooManyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..697814d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConnectionClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConnectionClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleConnectionClosedException" class="title">Class GuacamoleConnectionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleConnectionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConnectionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleConnectionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
new file mode 100644
index 0000000..3247dad
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleException" class="title">Class GuacamoleException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleException</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable HTTP status code
+     associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable WebSocket status
+     code associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..8466826
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceClosedException" class="title">Class GuacamoleResourceClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..5b26892
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceConflictException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceConflictException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceConflictException" class="title">Class GuacamoleResourceConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..39db8bf
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceNotFoundException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceNotFoundException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceNotFoundException" class="title">Class GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
new file mode 100644
index 0000000..a37fe21
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSecurityException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSecurityException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSecurityException" class="title">Class GuacamoleSecurityException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSecurityException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSecurityException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..cd253f9
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerBusyException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerBusyException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerBusyException" class="title">Class GuacamoleServerBusyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerBusyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerBusyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerBusyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
new file mode 100644
index 0000000..59d589f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerException" class="title">Class GuacamoleServerException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a>, <a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error. An internal error, if correctable, would
+ require correction on the server side, not the client.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..3c14326
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionClosedException" class="title">Class GuacamoleSessionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..b077ca6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionConflictException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionConflictException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionConflictException" class="title">Class GuacamoleSessionConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..45c187e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionTimeoutException" class="title">Class GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..7bbb613
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnauthorizedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnauthorizedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnauthorizedException" class="title">Class GuacamoleUnauthorizedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnauthorizedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnauthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..d29395c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnsupportedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnsupportedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnsupportedException" class="title">Class GuacamoleUnsupportedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnsupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnsupportedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnsupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..d0b2aa8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamException" class="title">Class GuacamoleUpstreamException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..40380ac
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamNotFoundException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamNotFoundException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamNotFoundException" class="title">Class GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..7d22b4c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamTimeoutException" class="title">Class GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..65964ff
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamUnavailableException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamUnavailableException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamUnavailableException" class="title">Class GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamUnavailableException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..3bcfda8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientBadTypeException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientBadTypeException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
new file mode 100644
index 0000000..6cfc7df
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..c482709
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientOverrunException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientOverrunException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..c4136f6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..f8a1b5b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTooManyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTooManyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..7603d9a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleConnectionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleConnectionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
new file mode 100644
index 0000000..e59adf6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
@@ -0,0 +1,676 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..3c2f886
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..c853d40
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..f3967bd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
new file mode 100644
index 0000000..77f6b71
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSecurityException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSecurityException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..f47f54b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerBusyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleServerBusyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
new file mode 100644
index 0000000..02b82d3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..4b44b64
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..9a05916
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..7638138
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..36a0212
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnauthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnauthorizedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..6a8679a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnsupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnsupportedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..3bf0daf
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..80eedb1
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..13156fe
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..837b555
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamUnavailableException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
new file mode 100644
index 0000000..b93f4c3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleReader" class="title">Interface GuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a>, <a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleReader</span></pre>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>boolean&nbsp;available()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>char[]&nbsp;read()
+     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                              throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
new file mode 100644
index 0000000..ecc2735
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleWriter" class="title">Interface GuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a>, <a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleWriter</span></pre>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk,
+           int&nbsp;off,
+           int&nbsp;len)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..43a86e8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReaderGuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderGuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class ReaderGuacamoleReader" class="title">Class ReaderGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.ReaderGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ReaderGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</code>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReaderGuacamoleReader-java.io.Reader-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReaderGuacamoleReader</h4>
+<pre>public&nbsp;ReaderGuacamoleReader(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</pre>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The Reader to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..1b90e73
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>WriterGuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterGuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class WriterGuacamoleWriter" class="title">Class WriterGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.WriterGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">WriterGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</code>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="WriterGuacamoleWriter-java.io.Writer-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WriterGuacamoleWriter</h4>
+<pre>public&nbsp;WriterGuacamoleWriter(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</pre>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - The Writer to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;off,
+                  int&nbsp;len)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
new file mode 100644
index 0000000..0fc4f7b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleReader" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></span></code>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></span></code>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
new file mode 100644
index 0000000..cf4c22d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></span></code>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></span></code>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..5742be7
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.io.ReaderGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.ReaderGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..318fe4b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.io.WriterGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.WriterGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-frame.html
new file mode 100644
index 0000000..04f684b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-frame.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/io/package-summary.html" target="classFrame">org.apache.guacamole.io</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-summary.html
new file mode 100644
index 0000000..3f8e7ce
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-summary.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.io</h1>
+<div class="docSummary">
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.io Description">Package org.apache.guacamole.io Description</h2>
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-tree.html
new file mode 100644
index 0000000..eaadbdb
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-tree.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.io</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-use.html
new file mode 100644
index 0000000..60aa79c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/io/package-use.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.io (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.io (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.io" class="title">Uses of Package<br>org.apache.guacamole.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.io">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.io">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.net">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.net">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.protocol">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.protocol">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..9c6d103
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
@@ -0,0 +1,506 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class AbstractGuacamoleTunnel" class="title">Class AbstractGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.AbstractGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks. Implementations need only
+ provide the tunnel's UUID and socket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel</a></span>()</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a>, <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractGuacamoleTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractGuacamoleTunnel</h4>
+<pre>public&nbsp;AbstractGuacamoleTunnel()</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleSocket.html
new file mode 100644
index 0000000..5db79e6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleSocket.html
@@ -0,0 +1,450 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class DelegatingGuacamoleSocket" class="title">Class DelegatingGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.DelegatingGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">GuacamoleSocket implementation which simply delegates all function calls to
+ an underlying GuacamoleSocket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#DelegatingGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">DelegatingGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Wraps the given GuacamoleSocket such that all function calls against
+ this DelegatingGuacamoleSocket will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket</a></span>()</code>
+<div class="block">Returns the underlying GuacamoleSocket wrapped by this
+ DelegatingGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingGuacamoleSocket</h4>
+<pre>public&nbsp;DelegatingGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</pre>
+<div class="block">Wraps the given GuacamoleSocket such that all function calls against
+ this DelegatingGuacamoleSocket will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateSocket</h4>
+<pre>protected&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getDelegateSocket()</pre>
+<div class="block">Returns the underlying GuacamoleSocket wrapped by this
+ DelegatingGuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket wrapped by this DelegatingGuacamoleSocket.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns the name of the protocol to be used. If the protocol is not
+ known or the implementation refuses to reveal the underlying protocol,
+ null is returned.
+
+ <p>Implementations <strong>should</strong> aim to expose the name of the
+ underlying protocol, such that protocol-specific responses like the
+ "required" and "argv" instructions can be handled correctly by code
+ consuming the GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used, or null if this information is
+     not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..9b3e017
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,549 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class DelegatingGuacamoleTunnel" class="title">Class DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.DelegatingGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingGuacamoleTunnel</h4>
+<pre>public&nbsp;DelegatingGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The GuacamoleTunnel to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
new file mode 100644
index 0000000..4edbafa
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
@@ -0,0 +1,348 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":18,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleSocket" class="title">Interface GuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleSocket</span></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>default&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block">Returns the name of the protocol to be used. If the protocol is not
+ known or the implementation refuses to reveal the underlying protocol,
+ null is returned.
+
+ <p>Implementations <strong>should</strong> aim to expose the name of the
+ underlying protocol, such that protocol-specific responses like the
+ "required" and "argv" instructions can be handled correctly by code
+ consuming the GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used, or null if this information is
+     not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
new file mode 100644
index 0000000..9628bf8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleTunnel" class="title">Interface GuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleTunnel</span></pre>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span></code>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INTERNAL_DATA_OPCODE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INTERNAL_DATA_OPCODE</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> INTERNAL_DATA_OPCODE</pre>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations. The value of this opcode is
+ guaranteed to be the empty string (""). Tunnel implementations may use
+ this opcode for any purpose. It is currently used by the HTTP tunnel to
+ mark the end of the HTTP response, and by the WebSocket tunnel to
+ transmit the tunnel UUID.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
new file mode 100644
index 0000000..55c7d08
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InetGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InetGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class InetGuacamoleSocket" class="title">Class InetGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.InetGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">InetGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.GuacamoleSocket">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InetGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InetGuacamoleSocket</h4>
+<pre>public&nbsp;InetGuacamoleSocket(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port)
+                    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..c68ef54
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SSLGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SSLGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SSLGuacamoleSocket" class="title">Class SSLGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SSLGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SSLGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.GuacamoleSocket">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SSLGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSLGuacamoleSocket</h4>
+<pre>public&nbsp;SSLGuacamoleSocket(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                          int&nbsp;port)
+                   throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..21a9880
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SimpleGuacamoleTunnel" class="title">Class SimpleGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.AbstractGuacamoleTunnel</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SimpleGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleGuacamoleTunnel</span>
+extends <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket. The UUID of
+ the tunnel will be randomly generated.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.AbstractGuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleGuacamoleTunnel</h4>
+<pre>public&nbsp;SimpleGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to provide synchronized access for.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..4436502
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.AbstractGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html
new file mode 100644
index 0000000..33c9f08
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.DelegatingGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.DelegatingGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></span></code>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></span></code>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></span></code>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..c52afd3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.DelegatingGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
new file mode 100644
index 0000000..8997bca
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
@@ -0,0 +1,338 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></span></code>
+<div class="block">GuacamoleSocket implementation which simply delegates all function calls to
+ an underlying GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket</a></span>()</code>
+<div class="block">Returns the underlying GuacamoleSocket wrapped by this
+ DelegatingGuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#DelegatingGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">DelegatingGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Wraps the given GuacamoleSocket such that all function calls against
+ this DelegatingGuacamoleSocket will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></span></code>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></span></code>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></span></code>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
new file mode 100644
index 0000000..077575a
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span></code>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
new file mode 100644
index 0000000..d417fdc
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.InetGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.InetGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..e67bbdd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.SSLGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SSLGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..3bf7af8
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.SimpleGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SimpleGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-frame.html
new file mode 100644
index 0000000..bd2816e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-frame.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/net/package-summary.html" target="classFrame">org.apache.guacamole.net</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleSocket</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-summary.html
new file mode 100644
index 0000000..6ec9061
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-summary.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net</h1>
+<div class="docSummary">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">GuacamoleSocket implementation which simply delegates all function calls to
+ an underlying GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net Description">Package org.apache.guacamole.net Description</h2>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-tree.html
new file mode 100644
index 0000000..a4d9481
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-tree.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-use.html
new file mode 100644
index 0000000..9cc8d38
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/net/package-use.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net" class="title">Uses of Package<br>org.apache.guacamole.net</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html#org.apache.guacamole.net">AbstractGuacamoleTunnel</a>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.net">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.net">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/DelegatingGuacamoleSocket.html#org.apache.guacamole.protocol">DelegatingGuacamoleSocket</a>
+<div class="block">GuacamoleSocket implementation which simply delegates all function calls to
+ an underlying GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.protocol">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.servlet">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.websocket">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-frame.html
new file mode 100644
index 0000000..cf13542
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-frame.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../org/apache/guacamole/package-summary.html" target="classFrame">org.apache.guacamole</a></h1>
+<div class="indexContainer">
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-summary.html
new file mode 100644
index 0000000..67d86e1
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-summary.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole</h1>
+<div class="docSummary">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole Description">Package org.apache.guacamole Description</h2>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-tree.html
new file mode 100644
index 0000000..df6c007
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-tree.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-use.html
new file mode 100644
index 0000000..6d20132
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/package-use.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole" class="title">Uses of Package<br>org.apache.guacamole</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleClientException.html#org.apache.guacamole">GuacamoleClientException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleSecurityException.html#org.apache.guacamole">GuacamoleSecurityException</a>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleServerException.html#org.apache.guacamole">GuacamoleServerException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.io">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.net">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.protocol">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole.protocol">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.servlet">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.websocket">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..302a141
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,453 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConfiguredGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfiguredGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class ConfiguredGuacamoleSocket" class="title">Class ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.DelegatingGuacamoleSocket</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ConfiguredGuacamoleSocket</span>
+extends <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></pre>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.
+
+ This is useful for forcing a connection to the Guacamole proxy server with
+ a specific configuration while disallowing the client that will be using
+ this GuacamoleSocket from manually controlling the initial protocol
+ handshake.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.DelegatingGuacamoleSocket">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#isOpen--">isOpen</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket. A default GuacamoleClientInformation object
+ is used to provide basic client information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dd><code>info</code> - The GuacamoleClientInformation to use to complete the initial
+             protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration used to configure this
+         ConfiguredGuacamoleSocket.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket. The ID is provided by
+ the "ready" instruction returned by the Guacamole proxy.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the negotiated Guacamole connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocolVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;getProtocolVersion()</pre>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket. This
+ version is the lowest version common to both ConfiguredGuacamoleSocket
+ and the relevant Guacamole proxy instance (guacd).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol version that this ConfiguredGuacamoleSocket will use to
+     communicate with guacd.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns the name of the protocol to be used. If the protocol is not
+ known or the implementation refuses to reveal the underlying protocol,
+ null is returned.
+
+ <p>Implementations <strong>should</strong> aim to expose the name of the
+ underlying protocol, such that protocol-specific responses like the
+ "required" and "argv" instructions can be handled correctly by code
+ consuming the GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getProtocol--">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getProtocol--">getProtocol</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used, or null if this information is
+     not available.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..2bb15aa
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FailoverGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FailoverGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FailoverGuacamoleSocket" class="title">Class FailoverGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.DelegatingGuacamoleSocket</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FailoverGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FailoverGuacamoleSocket</span>
+extends <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></pre>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session. Upstream errors which are intercepted early enough result in
+ exceptions thrown immediately within the FailoverGuacamoleSocket's
+ constructor, allowing a different socket to be substituted prior to
+ fulfilling the connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.DelegatingGuacamoleSocket">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getProtocol--">getProtocol</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#isOpen--">isOpen</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               int&nbsp;instructionQueueLimit)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached. If an
+ upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dd><code>instructionQueueLimit</code> - The maximum number of characters of Guacamole instruction data to
+     store within the instruction queue while searching for errors. Once
+     this limit is exceeded, the connection is assumed to be successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued. If
+ an upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..ba76655
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleReader" class="title">Class FilteredGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions. Instructions may also be dropped or denied by the the
+ filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleReader</h4>
+<pre>public&nbsp;FilteredGuacamoleReader(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions. Future reads will return only instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reader</code> - The GuacamoleReader to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are read, and
+               how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..0471f77
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
@@ -0,0 +1,368 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleSocket" class="title">Class FilteredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.DelegatingGuacamoleSocket</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleSocket</span>
+extends <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></pre>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.DelegatingGuacamoleSocket">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getDelegateSocket--">getDelegateSocket</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getProtocol--">getProtocol</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#isOpen--">isOpen</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleSocket</h4>
+<pre>public&nbsp;FilteredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</pre>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc. If reads or writes should be unfiltered, simply specify
+ null rather than a particular filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>readFilter</code> - The GuacamoleFilter to apply to all read instructions,
+                   if any.</dd>
+<dd><code>writeFilter</code> - The GuacamoleFilter to apply to all written 
+                    instructions, if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..40c92ba
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleWriter" class="title">Class FilteredGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions. Instructions may also be dropped or denied by
+ the filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleWriter</h4>
+<pre>public&nbsp;FilteredGuacamoleWriter(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions. Future writes will only write instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writer</code> - The GuacamoleWriter to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are written,
+               and how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>offset</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>length</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
new file mode 100644
index 0000000..1bd956f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
@@ -0,0 +1,510 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientInformation (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientInformation (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleClientInformation" class="title">Class GuacamoleClientInformation</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleClientInformation</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientInformation</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes</a></span>()</code>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes</a></span>()</code>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution</a></span>()</code>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight</a></span>()</code>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth</a></span>()</code>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone</a></span>()</code>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes</a></span>()</code>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution</a></span>(int&nbsp;optimalResolution)</code>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight</a></span>(int&nbsp;optimalScreenHeight)</code>
+<div class="block">Sets the client's optimal screen height.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth</a></span>(int&nbsp;optimalScreenWidth)</code>
+<div class="block">Sets the client's optimal screen width.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</code>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientInformation--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientInformation</h4>
+<pre>public&nbsp;GuacamoleClientInformation()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOptimalScreenWidth--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenWidth</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenWidth()</pre>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen width requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenWidth-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenWidth</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenWidth(int&nbsp;optimalScreenWidth)</pre>
+<div class="block">Sets the client's optimal screen width.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenWidth</code> - The optimal screen width of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalScreenHeight--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenHeight</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenHeight()</pre>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen height requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenHeight-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenHeight</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenHeight(int&nbsp;optimalScreenHeight)</pre>
+<div class="block">Sets the client's optimal screen height.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenHeight</code> - The optimal screen height of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalResolution--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalResolution</h4>
+<pre>public&nbsp;int&nbsp;getOptimalResolution()</pre>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen resolution.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalResolution-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalResolution</h4>
+<pre>public&nbsp;void&nbsp;setOptimalResolution(int&nbsp;optimalResolution)</pre>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalResolution</code> - The optimal screen resolution in DPI.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAudioMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAudioMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAudioMimetypes()</pre>
+<div class="block">Returns the list of audio mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of audio mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVideoMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVideoMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getVideoMimetypes()</pre>
+<div class="block">Returns the list of video mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of video mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getImageMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImageMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getImageMimetypes()</pre>
+<div class="block">Returns the list of image mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of image mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTimezone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimezone</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTimezone()</pre>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.  Valid timezones are specified in IANA zone key format,
+ also known as Olson time zone database or TZ Database.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string value of the timezone reported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTimezone-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTimezone</h4>
+<pre>public&nbsp;void&nbsp;setTimezone(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</pre>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.  Valid timezones are specified in IANA zone
+ key format (aka Olson time zone database or tz database).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timezone</code> - The string value of the timezone reported by the client, in tz
+     database format, or null if the timezone is not provided by the
+     client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
new file mode 100644
index 0000000..3b4c4df
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
@@ -0,0 +1,543 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConfiguration (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConfiguration (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleConfiguration" class="title">Class GuacamoleConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.protocol.GuacamoleConfiguration">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration</a></span>()</code>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames</a></span>()</code>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</code>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</code>
+<div class="block">Sets the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration()</pre>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</li>
+</ul>
+<a name="GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</pre>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to copy.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the ID of the connection being joined, if any. If no connection
+ is being joined, this returns null, and the protocol must be set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the connection being joined, or null if no connection
+         is being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionID-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionID</h4>
+<pre>public&nbsp;void&nbsp;setConnectionID(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</pre>
+<div class="block">Sets the ID of the connection being joined, if any. If no connection
+ is being joined, this value must be omitted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionID</code> - The ID of the connection being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block">Returns the name of the protocol to be used.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProtocol</h4>
+<pre>public&nbsp;void&nbsp;setProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</pre>
+<div class="block">Sets the name of the protocol to be used. If no connection is being
+ joined (a new connection is being established), this value must be set.
+
+ <p>If a connection is being joined, <strong>this value should still be
+ set</strong> to ensure that protocol-specific responses like the
+ "required" and "argv" instructions can be understood in their proper
+ context by other code that may consume this GuacamoleConfiguration like
+ <a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><code>ConfiguredGuacamoleSocket</code></a>.
+
+ <p>If this value is unavailable or remains unset, it is still possible
+ to join an established connection using
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-"><code>setConnectionID(java.lang.String)</code></a>, however protocol-specific
+ responses like the "required" and "argv" instructions might not be
+ possible to handle correctly if the underlying protocol is not made
+ available through some other means to the client receiving those
+ responses.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>protocol</code> - The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParameter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to return the value for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the parameter with the given name, or null if
+         that parameter has not been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameter-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameter</h4>
+<pre>public&nbsp;void&nbsp;setParameter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to set the value for.</dd>
+<dd><code>value</code> - The value to set for the parameter with the given name.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetParameter</h4>
+<pre>public&nbsp;void&nbsp;unsetParameter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to remove the value of.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameterNames--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterNames</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameterNames()</pre>
+<div class="block">Returns a set of all currently defined parameter names. Each name
+ corresponds to a parameter that has a value set on this
+ GuacamoleConfiguration via setParameter().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all currently defined parameter names.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs. Changes to this map will affect the parameters stored within
+ this configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
new file mode 100644
index 0000000..d6abb12
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleFilter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleFilter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Interface GuacamoleFilter" class="title">Interface GuacamoleFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleFilter</span></pre>
+<div class="block">Interface which provides for the filtering of individual instructions. Each
+ filtered instruction may be allowed through untouched, modified, replaced,
+ dropped, or explicitly denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="filter-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;filter(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The instruction to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original instruction, if the instruction is to be allowed,
+         a modified version of the instruction, if the instruction is
+         to be overridden, or null, if the instruction is to be dropped.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs filtering the instruction,
+                            or if the instruction must be explicitly
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
new file mode 100644
index 0000000..9a0126c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:23 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInstruction (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInstruction (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleInstruction" class="title">Class GuacamoleInstruction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleInstruction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInstruction</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs</a></span>()</code>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode</a></span>()</code>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString</a></span>()</code>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInstruction-java.lang.String-java.lang.String...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInstruction-java.lang.String-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values. The list given will be used to back the
+ internal list of arguments and the list returned by getArgs().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOpcode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOpcode</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getOpcode()</pre>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The opcode associated with this GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="getArgs--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArgs</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getArgs()</pre>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction. Note that the List returned is immutable.
+ Attempts to modify the list will result in exceptions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A List of all argument values specified for this
+         GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This GuacamoleInstruction in the form it would be sent over the
+     Guacamole protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
new file mode 100644
index 0000000..477beae
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleParser (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleParser (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleParser" class="title">Class GuacamoleParser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleParser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleParser</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</pre>
+<div class="block">Parser for the Guacamole protocol. Arbitrary instruction data is appended,
+ and instructions are returned as a result. Invalid instructions result in
+ exceptions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span></code>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span></code>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span></code>
+<div class="block">The maximum number of characters per instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_LENGTH</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_LENGTH</pre>
+<div class="block">The maximum number of characters per instruction.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_DIGITS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_DIGITS</pre>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_ELEMENTS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_ELEMENTS</pre>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleParser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleParser</h4>
+<pre>public&nbsp;GuacamoleParser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="append-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The buffer containing the data to append.</dd>
+<dd><code>offset</code> - The offset within the buffer where the data begins.</dd>
+<dd><code>length</code> - The length of the data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="append-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;hasNext()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="next--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;next()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="remove--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..23dcc40
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolCapability (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolCapability (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleProtocolCapability" class="title">Enum GuacamoleProtocolCapability</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolCapability</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleProtocolCapability</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</pre>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#ARBITRARY_HANDSHAKE_ORDER">ARBITRARY_HANDSHAKE_ORDER</a></span></code>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#PROTOCOL_VERSION_DETECTION">PROTOCOL_VERSION_DETECTION</a></span></code>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#REQUIRED_INSTRUCTION">REQUIRED_INSTRUCTION</a></span></code>
+<div class="block">Support for the "required" instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#TIMEZONE_HANDSHAKE">TIMEZONE_HANDSHAKE</a></span></code>
+<div class="block">Support for the "timezone" handshake instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ARBITRARY_HANDSHAKE_ORDER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARBITRARY_HANDSHAKE_ORDER</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> ARBITRARY_HANDSHAKE_ORDER</pre>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent. Arbitrary
+ handshake order was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="PROTOCOL_VERSION_DETECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROTOCOL_VERSION_DETECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> PROTOCOL_VERSION_DETECTION</pre>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake. The ability to negotiate protocol
+ versions was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="REQUIRED_INSTRUCTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>REQUIRED_INSTRUCTION</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> REQUIRED_INSTRUCTION</pre>
+<div class="block">Support for the "required" instruction. The "required" instruction
+ allows the server to explicitly request connection parameters from the
+ client without which the connection cannot continue, such as user
+ credentials. Support for this instruction was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_3_0"><code>GuacamoleProtocolVersion.VERSION_1_3_0</code></a>.</div>
+</li>
+</ul>
+<a name="TIMEZONE_HANDSHAKE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIMEZONE_HANDSHAKE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> TIMEZONE_HANDSHAKE</pre>
+<div class="block">Support for the "timezone" handshake instruction. The "timezone"
+ instruction allows the client to request that the server forward their
+ local timezone for use within the remote desktop session. Support for
+ forwarding the client timezone was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProtocolCapability c : GuacamoleProtocolCapability.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isSupported</h4>
+<pre>public&nbsp;boolean&nbsp;isSupported(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</pre>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The Guacamole protocol version to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this capability is supported by the given protocol version,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..b89661b
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
@@ -0,0 +1,552 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolVersion (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolVersion (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleProtocolVersion" class="title">Class GuacamoleProtocolVersion</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolVersion</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProtocolVersion</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Representation of a Guacamole protocol version. Convenience methods are
+ provided for parsing and comparing versions, as is necessary when
+ determining the version of the Guacamole protocol common to guacd and a
+ client.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_3_0">VERSION_1_3_0</a></span></code>
+<div class="block">Protocol version 1.3.0, which introduces the "required" instruction
+ allowing the server to explicitly request connection parameters from the
+ client.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion</a></span>(int&nbsp;major,
+                        int&nbsp;minor,
+                        int&nbsp;patch)</code>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor</a></span>()</code>
+<div class="block">Return the major version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor</a></span>()</code>
+<div class="block">Return the minor version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch</a></span>()</code>
+<div class="block">Return the patch version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="VERSION_1_0_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_0_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_0_0</pre>
+<div class="block">Protocol version 1.0.0 and older.  Any client that doesn't explicitly
+ set the protocol version will negotiate down to this protocol version.
+ This requires that handshake instructions be ordered correctly, and
+ lacks support for certain protocol-related features introduced in later
+ versions.</div>
+</li>
+</ul>
+<a name="VERSION_1_1_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_1_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_1_0</pre>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</li>
+</ul>
+<a name="VERSION_1_3_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_3_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_3_0</pre>
+<div class="block">Protocol version 1.3.0, which introduces the "required" instruction
+ allowing the server to explicitly request connection parameters from the
+ client.</div>
+</li>
+</ul>
+<a name="LATEST">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LATEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> LATEST</pre>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProtocolVersion-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProtocolVersion</h4>
+<pre>public&nbsp;GuacamoleProtocolVersion(int&nbsp;major,
+                                int&nbsp;minor,
+                                int&nbsp;patch)</pre>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>major</code> - The integer representation of the major version component.</dd>
+<dd><code>minor</code> - The integer representation of the minor version component.</dd>
+<dd><code>patch</code> - The integer representation of the patch version component.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMajor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMajor</h4>
+<pre>public&nbsp;int&nbsp;getMajor()</pre>
+<div class="block">Return the major version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer major version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinor</h4>
+<pre>public&nbsp;int&nbsp;getMinor()</pre>
+<div class="block">Return the minor version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer minor version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPatch--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPatch</h4>
+<pre>public&nbsp;int&nbsp;getPatch()</pre>
+<div class="block">Return the patch version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer patch version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>atLeast</h4>
+<pre>public&nbsp;boolean&nbsp;atLeast(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</pre>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherVersion</code> - The version to which this GuacamoleProtocolVersion should be compared.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this object is at least as recent as the given version,
+     false if the given version is newer.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseVersion-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parseVersion</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;parseVersion(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</pre>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.  If no value is provided, return
+ null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The String format of the version to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The enum value that matches the specified version, VERSION_1_0_0
+     if no match is found, or null if no comparison version is provided.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
new file mode 100644
index 0000000..bfc8be6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
@@ -0,0 +1,759 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleStatus (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleStatus (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleStatus" class="title">Enum GuacamoleStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleStatus</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleStatus</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</pre>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_REQUEST">CLIENT_BAD_REQUEST</a></span></code>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_TYPE">CLIENT_BAD_TYPE</a></span></code>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_FORBIDDEN">CLIENT_FORBIDDEN</a></span></code>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_OVERRUN">CLIENT_OVERRUN</a></span></code>
+<div class="block">The client sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TIMEOUT">CLIENT_TIMEOUT</a></span></code>
+<div class="block">The client took too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TOO_MANY">CLIENT_TOO_MANY</a></span></code>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_UNAUTHORIZED">CLIENT_UNAUTHORIZED</a></span></code>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CLOSED">RESOURCE_CLOSED</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CONFLICT">RESOURCE_CONFLICT</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_NOT_FOUND">RESOURCE_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_BUSY">SERVER_BUSY</a></span></code>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_ERROR">SERVER_ERROR</a></span></code>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CLOSED">SESSION_CLOSED</a></span></code>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CONFLICT">SESSION_CONFLICT</a></span></code>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_TIMEOUT">SESSION_TIMEOUT</a></span></code>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SUCCESS">SUCCESS</a></span></code>
+<div class="block">The operation succeeded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UNSUPPORTED">UNSUPPORTED</a></span></code>
+<div class="block">The requested operation is unsupported.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_ERROR">UPSTREAM_ERROR</a></span></code>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_NOT_FOUND">UPSTREAM_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_TIMEOUT">UPSTREAM_TIMEOUT</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_UNAVAILABLE">UPSTREAM_UNAVAILABLE</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode</a></span>()</code>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="SUCCESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUCCESS</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SUCCESS</pre>
+<div class="block">The operation succeeded.</div>
+</li>
+</ul>
+<a name="UNSUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UNSUPPORTED</pre>
+<div class="block">The requested operation is unsupported.</div>
+</li>
+</ul>
+<a name="SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_ERROR</pre>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</li>
+</ul>
+<a name="SERVER_BUSY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_BUSY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_BUSY</pre>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</li>
+</ul>
+<a name="UPSTREAM_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_TIMEOUT</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</li>
+</ul>
+<a name="UPSTREAM_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_ERROR</pre>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</li>
+</ul>
+<a name="RESOURCE_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_NOT_FOUND</pre>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</li>
+</ul>
+<a name="RESOURCE_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CONFLICT</pre>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</li>
+</ul>
+<a name="RESOURCE_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CLOSED</pre>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</li>
+</ul>
+<a name="UPSTREAM_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_NOT_FOUND</pre>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</li>
+</ul>
+<a name="UPSTREAM_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_UNAVAILABLE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_UNAVAILABLE</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</li>
+</ul>
+<a name="SESSION_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CONFLICT</pre>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</li>
+</ul>
+<a name="SESSION_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_TIMEOUT</pre>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</li>
+</ul>
+<a name="SESSION_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CLOSED</pre>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_REQUEST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_REQUEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_REQUEST</pre>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</li>
+</ul>
+<a name="CLIENT_UNAUTHORIZED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_UNAUTHORIZED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_UNAUTHORIZED</pre>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example). As HTTP 401 has implications
+ for HTTP-specific authorization schemes, this status continues to map to
+ HTTP 403 ("Forbidden"). To do otherwise would risk unintended effects.</div>
+</li>
+</ul>
+<a name="CLIENT_FORBIDDEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_FORBIDDEN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_FORBIDDEN</pre>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</li>
+</ul>
+<a name="CLIENT_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TIMEOUT</pre>
+<div class="block">The client took too long to respond.</div>
+</li>
+</ul>
+<a name="CLIENT_OVERRUN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_OVERRUN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_OVERRUN</pre>
+<div class="block">The client sent too much data.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_TYPE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_TYPE</pre>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</li>
+</ul>
+<a name="CLIENT_TOO_MANY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLIENT_TOO_MANY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TOO_MANY</pre>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleStatus c : GuacamoleStatus.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getGuacamoleStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getGuacamoleStatusCode()</pre>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole protocol status code.</dd>
+</dl>
+</li>
+</ul>
+<a name="fromGuacamoleStatusCode-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromGuacamoleStatusCode</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;fromGuacamoleStatusCode(int&nbsp;code)</pre>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code. If no such GuacamoleStatus is defined, null is
+ returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - The Guacamole protocol status code to translate into a
+     GuacamoleStatus.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleStatus corresponding to the given Guacamole protocol
+     status code, or null if no such GuacamoleStatus is defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..80c9337
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..d34c6a0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FailoverGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FailoverGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..66a6840
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..016df16
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..6d387e0
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
new file mode 100644
index 0000000..77ec7fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleClientInformation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
new file mode 100644
index 0000000..af3f3de
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
new file mode 100644
index 0000000..7f89209
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter" class="title">Uses of Interface<br>org.apache.guacamole.protocol.GuacamoleFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
new file mode 100644
index 0000000..a4a8d9f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleInstruction</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
new file mode 100644
index 0000000..251ef15
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleParser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.GuacamoleParser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..41264e6
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolCapability</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..0d706f5
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolVersion</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> declared as <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_3_0">VERSION_1_3_0</a></span></code>
+<div class="block">Protocol version 1.3.0, which introduces the "required" instruction
+ allowing the server to explicitly request connection parameters from the
+ client.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
new file mode 100644
index 0000000..cadcd94
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerBusyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientOverrunException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnsupportedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientBadTypeException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamUnavailableException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSecurityException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnauthorizedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTooManyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleConnectionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
new file mode 100644
index 0000000..47866fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocol/package-summary.html" target="classFrame">org.apache.guacamole.protocol</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
new file mode 100644
index 0000000..52ba2f2
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocol</h1>
+<div class="docSummary">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></td>
+<td class="colLast">
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></td>
+<td class="colLast">
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></td>
+<td class="colLast">
+<div class="block">Parser for the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></td>
+<td class="colLast">
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></td>
+<td class="colLast">
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></td>
+<td class="colLast">
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.protocol Description">Package org.apache.guacamole.protocol Description</h2>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
new file mode 100644
index 0000000..0d23bae
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocol</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
new file mode 100644
index 0000000..273d723
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocol (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocol (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocol" class="title">Uses of Package<br>org.apache.guacamole.protocol</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.io">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html#org.apache.guacamole.protocol">GuacamoleClientInformation</a>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html#org.apache.guacamole.protocol">GuacamoleConfiguration</a>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleFilter.html#org.apache.guacamole.protocol">GuacamoleFilter</a>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.protocol">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html#org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html#org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole.protocol">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..a2d30af
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,606 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleHTTPTunnelServlet (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleHTTPTunnelServlet (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.servlet</div>
+<h2 title="Class GuacamoleHTTPTunnelServlet" class="title">Class GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.GenericServlet</li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.http.HttpServlet</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleHTTPTunnelServlet</span>
+extends javax.servlet.http.HttpServlet</pre>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+     javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+                   javax.servlet.http.HttpServletResponse&nbsp;response)</code>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError</a></span>(javax.servlet.http.HttpServletResponse&nbsp;response,
+         int&nbsp;guacamoleStatusCode,
+         int&nbsp;guacamoleHttpCode,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.http.HttpServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.http.HttpServlet</h3>
+<code>doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.GenericServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.GenericServlet</h3>
+<code>getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleHTTPTunnelServlet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleHTTPTunnelServlet</h4>
+<pre>public&nbsp;GuacamoleHTTPTunnelServlet()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerTunnel</h4>
+<pre>protected&nbsp;void&nbsp;registerTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to register.</dd>
+</dl>
+</li>
+</ul>
+<a name="deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deregisterTunnel</h4>
+<pre>protected&nbsp;void&nbsp;deregisterTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to deregister.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>protected&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;getTunnel(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                             throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnelUUID</code> - The UUID of registered tunnel.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel corresponding to the given UUID.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If the requested tunnel does not exist because it has not yet been
+     registered or it has been deregistered.</dd>
+</dl>
+</li>
+</ul>
+<a name="doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doGet</h4>
+<pre>protected&nbsp;void&nbsp;doGet(javax.servlet.http.HttpServletRequest&nbsp;request,
+                     javax.servlet.http.HttpServletResponse&nbsp;response)
+              throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doGet</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doPost</h4>
+<pre>protected&nbsp;void&nbsp;doPost(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response)
+               throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doPost</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendError</h4>
+<pre>protected&nbsp;void&nbsp;sendError(javax.servlet.http.HttpServletResponse&nbsp;response,
+                         int&nbsp;guacamoleStatusCode,
+                         int&nbsp;guacamoleHttpCode,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)
+                  throws javax.servlet.ServletException</pre>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - The HTTP response to use to send the error.</dd>
+<dd><code>guacamoleStatusCode</code> - The GuacamoleStatus code to send.</dd>
+<dd><code>guacamoleHttpCode</code> - The numeric HTTP code to send.</dd>
+<dd><code>message</code> - The human-readable error message to send.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error prevents sending of the error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>handleTunnelRequest</h4>
+<pre>protected&nbsp;void&nbsp;handleTunnelRequest(javax.servlet.http.HttpServletRequest&nbsp;request,
+                                   javax.servlet.http.HttpServletResponse&nbsp;response)
+                            throws javax.servlet.ServletException</pre>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the GET or POST request
+     received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the GET or POST request
+     received.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error occurs while servicing the request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doConnect-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doConnect</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;doConnect(javax.servlet.http.HttpServletRequest&nbsp;request)
+                                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP. It it up to the implementor of this function to define
+ what conditions must be met for a tunnel to be configured and returned
+ as a result of this connection request (whether some sort of credentials
+ must be specified, for example).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the connection request
+     received. Any parameters specified along with the connection request
+     can be read from this object.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A newly constructed GuacamoleTunnel if successful, null otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while constructing the GuacamoleTunnel, or if the
+     conditions required for connection are not met.</dd>
+</dl>
+</li>
+</ul>
+<a name="doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doRead</h4>
+<pre>protected&nbsp;void&nbsp;doRead(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the read operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the read request received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.
+     Any data to be sent to the client in response to the write request
+     should be written to the response body of this HttpServletResponse.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to read from, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the read request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doWrite</h4>
+<pre>protected&nbsp;void&nbsp;doWrite(javax.servlet.http.HttpServletRequest&nbsp;request,
+                       javax.servlet.http.HttpServletResponse&nbsp;response,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the write operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the write request received.
+     Any data to be written will be specified within the body of this
+     request.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to write to, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the write request.</dd>
+</dl>
+</li>
+</ul>
+<a name="destroy--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre>public&nbsp;void&nbsp;destroy()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>destroy</code>&nbsp;in interface&nbsp;<code>javax.servlet.Servlet</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>destroy</code>&nbsp;in class&nbsp;<code>javax.servlet.GenericServlet</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..312b703
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet" class="title">Uses of Class<br>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
new file mode 100644
index 0000000..48dee21
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/servlet/package-summary.html" target="classFrame">org.apache.guacamole.servlet</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
new file mode 100644
index 0000000..a7a2c0d
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.servlet</h1>
+<div class="docSummary">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></td>
+<td class="colLast">
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.servlet Description">Package org.apache.guacamole.servlet Description</h2>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
new file mode 100644
index 0000000..745bb80
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.servlet</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
new file mode 100644
index 0000000..331225c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.servlet (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.servlet (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.servlet" class="title">Uses of Package<br>org.apache.guacamole.servlet</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.servlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..e291edd
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.websocket</div>
+<h2 title="Class GuacamoleWebSocketTunnelEndpoint" class="title">Class GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.Endpoint</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint</span>
+extends javax.websocket.Endpoint</pre>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.
+ Messages sent/received are simply chunks of the Guacamole protocol
+ instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose</a></span>(javax.websocket.Session&nbsp;session,
+       javax.websocket.CloseReason&nbsp;closeReason)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen</a></span>(javax.websocket.Session&nbsp;session,
+      javax.websocket.EndpointConfig&nbsp;config)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.websocket.Endpoint">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.websocket.Endpoint</h3>
+<code>onError</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleWebSocketTunnelEndpoint--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleWebSocketTunnelEndpoint</h4>
+<pre>public&nbsp;GuacamoleWebSocketTunnelEndpoint()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTunnel</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;createTunnel(javax.websocket.Session&nbsp;session,
+                                                javax.websocket.EndpointConfig&nbsp;config)
+                                         throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns a new tunnel for the given session. How this tunnel is created
+ or retrieved is implementation-dependent.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The session associated with the active WebSocket
+                connection.</dd>
+<dd><code>config</code> - Configuration information associated with the instance of
+               the endpoint created for handling this single connection.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connected tunnel, or null if no such tunnel exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while retrieving the
+                            tunnel, or if access to the tunnel is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre>public&nbsp;void&nbsp;onOpen(javax.websocket.Session&nbsp;session,
+                   javax.websocket.EndpointConfig&nbsp;config)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onOpen</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+<a name="onMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre>public&nbsp;void&nbsp;onMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+</li>
+</ul>
+<a name="onClose-javax.websocket.Session-javax.websocket.CloseReason-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onClose</h4>
+<pre>public&nbsp;void&nbsp;onClose(javax.websocket.Session&nbsp;session,
+                    javax.websocket.CloseReason&nbsp;closeReason)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>onClose</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..829b60c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint" class="title">Uses of Class<br>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
new file mode 100644
index 0000000..13e019f
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/websocket/package-summary.html" target="classFrame">org.apache.guacamole.websocket</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
new file mode 100644
index 0000000..818781c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></td>
+<td class="colLast">
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
new file mode 100644
index 0000000..1c8576c
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.websocket</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-use.html b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
new file mode 100644
index 0000000..54f42d4
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.websocket (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.websocket (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.websocket" class="title">Uses of Package<br>org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.websocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/overview-frame.html b/doc/1.3.0/guacamole-common/overview-frame.html
new file mode 100644
index 0000000..cb715db
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/overview-frame.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/package-frame.html" target="packageFrame">org.apache.guacamole</a></li>
+<li><a href="org/apache/guacamole/io/package-frame.html" target="packageFrame">org.apache.guacamole.io</a></li>
+<li><a href="org/apache/guacamole/net/package-frame.html" target="packageFrame">org.apache.guacamole.net</a></li>
+<li><a href="org/apache/guacamole/protocol/package-frame.html" target="packageFrame">org.apache.guacamole.protocol</a></li>
+<li><a href="org/apache/guacamole/servlet/package-frame.html" target="packageFrame">org.apache.guacamole.servlet</a></li>
+<li><a href="org/apache/guacamole/websocket/package-frame.html" target="packageFrame">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/overview-summary.html b/doc/1.3.0/guacamole-common/overview-summary.html
new file mode 100644
index 0000000..d62af97
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/overview-summary.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-common 1.3.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/overview-tree.html b/doc/1.3.0/guacamole-common/overview-tree.html
new file mode 100644
index 0000000..fbda657
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/overview-tree.html
@@ -0,0 +1,257 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/package-tree.html">org.apache.guacamole</a>, </li>
+<li><a href="org/apache/guacamole/io/package-tree.html">org.apache.guacamole.io</a>, </li>
+<li><a href="org/apache/guacamole/net/package-tree.html">org.apache.guacamole.net</a>, </li>
+<li><a href="org/apache/guacamole/protocol/package-tree.html">org.apache.guacamole.protocol</a>, </li>
+<li><a href="org/apache/guacamole/servlet/package-tree.html">org.apache.guacamole.servlet</a>, </li>
+<li><a href="org/apache/guacamole/websocket/package-tree.html">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/package-list b/doc/1.3.0/guacamole-common/package-list
new file mode 100644
index 0000000..a64bfa3
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/package-list
@@ -0,0 +1,6 @@
+org.apache.guacamole
+org.apache.guacamole.io
+org.apache.guacamole.net
+org.apache.guacamole.protocol
+org.apache.guacamole.servlet
+org.apache.guacamole.websocket
diff --git a/doc/1.3.0/guacamole-common/script.js b/doc/1.3.0/guacamole-common/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.3.0/guacamole-common/serialized-form.html b/doc/1.3.0/guacamole-common/serialized-form.html
new file mode 100644
index 0000000..7fbda2e
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/serialized-form.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:24 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-common 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-common 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientBadTypeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientBadTypeException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientOverrunException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientOverrunException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTooManyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTooManyException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleConnectionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleConnectionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceClosedException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceConflictException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSecurityException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerBusyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerBusyException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionConflictException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnauthorizedException</a> extends <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnsupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnsupportedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamUnavailableException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.protocol</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol.GuacamoleConfiguration">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">org.apache.guacamole.protocol.GuacamoleConfiguration</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectionID</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> connectionID</pre>
+<div class="block">The ID of the connection being joined. If this value is present,
+ the protocol need not be specified.</div>
+</li>
+<li class="blockList">
+<h4>protocol</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> protocol</pre>
+<div class="block">The name of the protocol associated with this configuration.</div>
+</li>
+<li class="blockListLast">
+<h4>parameters</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; parameters</pre>
+<div class="block">Map of all associated parameter values, indexed by parameter name.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.servlet</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</a> extends javax.servlet.http.HttpServlet implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>logger</h4>
+<pre>org.slf4j.Logger logger</pre>
+<div class="block">Logger for this class.</div>
+</li>
+<li class="blockListLast">
+<h4>tunnels</h4>
+<pre>org.apache.guacamole.servlet.GuacamoleHTTPTunnelMap tunnels</pre>
+<div class="block">Map of absolutely all active tunnels using HTTP, indexed by tunnel UUID.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-common/stylesheet.css b/doc/1.3.0/guacamole-common/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.3.0/guacamole-common/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.3.0/guacamole-ext/allclasses-frame.html b/doc/1.3.0/guacamole-ext/allclasses-frame.html
new file mode 100644
index 0000000..ce03ed9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/allclasses-frame.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">EnumGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties" target="classFrame">EnumGuacamoleProperty.PropertyValue</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form" target="classFrame">RedirectField</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">TimeZoneGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">URIGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/allclasses-noframe.html b/doc/1.3.0/guacamole-ext/allclasses-noframe.html
new file mode 100644
index 0000000..c70970e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/allclasses-noframe.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></li>
+<li><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties">EnumGuacamoleProperty.PropertyValue</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/constant-values.html b/doc/1.3.0/guacamole-ext/constant-values.html
new file mode 100644
index 0000000..d73a232
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/constant-values.html
@@ -0,0 +1,397 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.DateField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"yyyy-MM-dd"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.BOOLEAN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></code></td>
+<td class="colLast"><code>"BOOLEAN"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.DATE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></code></td>
+<td class="colLast"><code>"DATE"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.EMAIL">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></code></td>
+<td class="colLast"><code>"EMAIL"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.ENUM">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></code></td>
+<td class="colLast"><code>"ENUM"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.LANGUAGE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></code></td>
+<td class="colLast"><code>"LANGUAGE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.MULTILINE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></code></td>
+<td class="colLast"><code>"MULTILINE"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.NUMERIC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></code></td>
+<td class="colLast"><code>"NUMERIC"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.PASSWORD">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></code></td>
+<td class="colLast"><code>"PASSWORD"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.QUERY_PARAMETER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></code></td>
+<td class="colLast"><code>"QUERY_PARAMETER"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.REDIRECT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#REDIRECT">REDIRECT</a></code></td>
+<td class="colLast"><code>"REDIRECT"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.TERMINAL_COLOR_SCHEME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></code></td>
+<td class="colLast"><code>"TERMINAL_COLOR_SCHEME"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.TEXT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></code></td>
+<td class="colLast"><code>"TEXT"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></code></td>
+<td class="colLast"><code>"TIME"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.TIMEZONE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></code></td>
+<td class="colLast"><code>"TIMEZONE"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.Field.Type.USERNAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></code></td>
+<td class="colLast"><code>"USERNAME"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.TimeField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"HH:mm:ss"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></td>
+<td class="colLast"><code>"ROOT"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_ADDRESS"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_HOSTNAME"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.DATE_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_DATE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_PASSWORD"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.TIME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_TIME"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_USERNAME"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/deprecated-list.html b/doc/1.3.0/guacamole-ext/deprecated-list.html
new file mode 100644
index 0000000..7e7857f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/deprecated-list.html
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#interface">Deprecated Interfaces</a></li>
+<li><a href="#class">Deprecated Classes</a></li>
+<li><a href="#method">Deprecated Methods</a></li>
+<li><a href="#constructor">Deprecated Constructors</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="interface">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Interfaces table, listing deprecated interfaces, and an explanation">
+<caption><span>Deprecated Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationFailureListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.ConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelCloseListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelConnectListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="class">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
+<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleUserDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">org.apache.guacamole.token.StandardTokens</a>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
+<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.Connectable.connect(GuacamoleClientInformation)</a>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/User.html#getHistory--">org.apache.guacamole.net.auth.User.getHistory()</a>
+<div class="block"><span class="deprecationComment">This function is deprecated in favor of <code>getUserHistory</code>, which
+     returns the login history as an ActivityRecordSet which supports
+     various sort and filter functions. While this continues to be defined
+     for API compatibility, new implementation should avoid this function
+     and use getUserHistory(), instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/Connection.html#getHistory--">org.apache.guacamole.net.auth.Connection.getHistory()</a>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <code>getConnectionHistory</code>, which returns the connection history
+     as an ActivityRecordSet that can be easily sorted and filtered.
+     While the getHistory() method is provided for API compatibility,
+     new implementations should avoid use of this method and, instead,
+     implement the getConnectionHistory() method.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">org.apache.guacamole.net.auth.DelegatingConnection.getHistory()</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">org.apache.guacamole.net.auth.DelegatingUser.getHistory()</a></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="constructor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
+<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/help-doc.html b/doc/1.3.0/guacamole-ext/help-doc.html
new file mode 100644
index 0000000..d684684
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/help-doc.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/index-all.html b/doc/1.3.0/guacamole-ext/index-all.html
new file mode 100644
index 0000000..a0f32f6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/index-all.html
@@ -0,0 +1,4214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Adds the given object to the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens(TokenFilter)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens(TokenFilter, Credentials)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens(TokenFilter, AuthenticatedUser)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed(AuthenticationFailureEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent(Credentials)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded(AuthenticationSuccessEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent(AuthenticatedUser)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+</dl>
+<a name="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field with strictly one possible value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></dt>
+<dd>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize(String, String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize(String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters(char[], int, int)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which Guacamole can connect to.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All legal types of connection group.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials(String, String, HttpServletRequest)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">Information which describes a set of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a date field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Creates a new DateField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>AbstractUserContext.getRootConnectionGroup()</code></a> is not overridden.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection(Connection)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup(ConnectionGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile(SharingProfile)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup(UserGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;<a href="org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</dd>
+<dt><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a> - Class in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler(String, TagHandler)</a></span> - Constructor for class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An email address field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The email address of the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which may contain an email address.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></dt>
+<dd>
+<div class="block">Creates a new EmailField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement(String, String, String)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></dt>
+<dd>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty</span></a>&lt;<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&gt; - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose possible values are defined by an enum.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.util.Map-">EnumGuacamoleProperty(Map&lt;String, T&gt;)</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a></dt>
+<dd>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.lang.Class-">EnumGuacamoleProperty(Class&lt;T&gt;)</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a></dt>
+<dd>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the
+ <a href="org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><code>EnumGuacamoleProperty.PropertyValue</code></a> annotations associated with those constants.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.lang.String-T-java.lang.Object...-">EnumGuacamoleProperty(String, T, Object...)</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a></dt>
+<dd>
+<div class="block">Creates a new EnumGuacamoleProperty which parses the given String
+ property values into the given corresponding enum constants.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty.PropertyValue</span></a> - Annotation Type in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">Defines the string value which should be accepted and parsed into the
+ annotated enum constant.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a> - Interface in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field--">Field()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field(String, String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">All types of fields which are available by default.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues(Map&lt;?, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Information which describes logical set of fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form--">Form()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form(String, Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format(Integer)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The user's full name.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the objects having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dt>
+<dd>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dt>
+<dd>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo()</a></span> - Method in exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <code>getConnectionHistory</code>, which returns the connection history
+     as an ActivityRecordSet that can be easily sorted and filtered.
+     While the getHistory() method is provided for API compatibility,
+     new implementations should avoid use of this method and, instead,
+     implement the getConnectionHistory() method.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">This function is deprecated in favor of <code>getUserHistory</code>, which
+     returns the login history as an ActivityRecordSet which supports
+     various sort and filter functions. While this continues to be defined
+     for API compatibility, new implementation should avoid this function
+     and use getUserHistory(), instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getOptions--">getOptions()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of field options.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getPassword--">getPassword()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the port that guacd is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getPrivileged--">getPrivileged()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Returns a user context which provides privileged access.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getPrivileged--">getPrivileged()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">getPrivileged()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns a user context which provides privileged access.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the protocol having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/RedirectField.html#getRedirectUrl--">getRedirectUrl()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></dt>
+<dd>
+<div class="block">Returns the URL to which the user should be redirected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></dt>
+<dd>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens()</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/RedirectField.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in interface org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dt>
+<dd>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></dt>
+<dd>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the type of this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></dt>
+<dd>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getValue--">getValue()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#GMT_REGEX">GMT_REGEX</a></span> - Static variable in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></dt>
+<dd>
+<div class="block">A regex that matches valid variants of GMT timezones.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&gt; - Interface in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration(String, int, GuacamoleProxyConfiguration.EncryptionMethod)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration(String, int, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All possible types of encryption used by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent(Object)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></dt>
+<dd>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init(Attributes)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>ActiveConnection.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">Field type which allows selection of languages.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a language field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> - Class in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment()</a></span> - Constructor for class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field that can span more than one line.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></dt>
+<dd>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which may contain only integer values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Creates a new NumericField with the given name.</div>
+</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission(ObjectPermission.Type, String)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of object-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> - package org.apache.guacamole.environment</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> - package org.apache.guacamole.form</dt>
+<dd>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> - package org.apache.guacamole.language</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> - package org.apache.guacamole.net.auth</dt>
+<dd>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> - package org.apache.guacamole.net.auth.credentials</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> - package org.apache.guacamole.net.auth.permission</dt>
+<dd>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> - package org.apache.guacamole.net.auth.simple</dt>
+<dd>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> - package org.apache.guacamole.net.event</dt>
+<dd>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> - package org.apache.guacamole.net.event.listener</dt>
+<dd>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> - package org.apache.guacamole.properties</dt>
+<dd>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> - package org.apache.guacamole.protocols</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> - package org.apache.guacamole.token</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> - package org.apache.guacamole.xml</dt>
+<dd>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The organization, company, group, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Parses the given string into a language ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/URIGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></dt>
+<dd>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a> extends <a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">An arbitrary set of permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a> - Class in <a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></dt>
+<dd>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo()</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo(String)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</dd>
+</dl>
+<a name="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#REDIRECT">REDIRECT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A redirect field whose value is an encoded URL to which the user
+ will be redirected.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">RedirectField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">A Guacamole field that redirects a user to another page.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/RedirectField.html#RedirectField-java.lang.String-java.net.URI-org.apache.guacamole.language.TranslatableMessage-">RedirectField(String, URI, TranslatableMessage)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></dt>
+<dd>
+<div class="block">Creates a new field which facilitates redirection of the user
+ to another page.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#self--">self()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields(Collection&lt;Field&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Sets the identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects(Map&lt;String, ObjectType&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the options available as possible values of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Sets this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession(HttpSession)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken(String, String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Sets the token having the given name to the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue(String, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the field having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue(Field, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the given field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;<a href="org/apache/guacamole/net/auth/Shareable.html" title="type parameter in Shareable">T</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>
+<div class="block">Create a new SimpleActivityRecordSet that contains an empty set of
+ records.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet-java.util.Collection-">SimpleActivityRecordSet(Collection&lt;? extends RecordType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>
+<div class="block">Create a new SimpleActivityRecordSet that contains the provided records
+ which will back this record set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection(boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection(String, String, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection(String, String, GuacamoleConfiguration, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory(Collection&lt;Connection&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup(String, String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory(Collection&lt;ConnectionGroup&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory(Map&lt;String, ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory(ObjectType)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory(ObjectType...)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory(Collection&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;, Collection&lt;ObjectPermission.Type&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet(Set&lt;ObjectPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet(Set&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet(Set&lt;SystemPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext(AuthenticationProvider, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement(String, String, String, Attributes)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission(SystemPermission.Type)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of system-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a> - Interface in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a terminal color scheme field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></dt>
+<dd>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field, accepting arbitrary values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a basic text field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Creates a new TimeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time zone field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">TimeZoneGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a TimeZone.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#TimeZoneGuacamoleProperty--">TimeZoneGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter()</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter(Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection(Connection, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup(ConnectionGroup, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext(UserContext, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</dd>
+<dt><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Utility class for generating parameter token names.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a> - Interface in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientBadTypeException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleClientBadTypeException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientBadTypeException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientBadTypeException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientBadTypeException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientBadTypeException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleClientException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientOverrunException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleClientOverrunException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientOverrunException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientOverrunException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientOverrunException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientOverrunException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleClientTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTimeoutException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTimeoutException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientTimeoutException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientTimeoutException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTooManyException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleClientTooManyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTooManyException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTooManyException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientTooManyException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientTooManyException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleConnectionClosedException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleConnectionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleConnectionClosedException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleConnectionClosedException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleConnectionClosedException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleConnectionClosedException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleCredentialsException</code></a> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException(String, TranslatableMessage, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException(String, TranslatableMessage, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException(String, String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException(String, String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInsufficientCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException(String, TranslatableMessage, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException(String, TranslatableMessage, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException(String, String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException(String, String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInvalidCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException(String, TranslatableMessage, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException(String, TranslatableMessage, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException(String, String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException(String, String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceClosedException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleResourceClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceClosedException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceClosedException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceClosedException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceClosedException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceConflictException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleResourceConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceConflictException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceConflictException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceConflictException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceConflictException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleResourceNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceNotFoundException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceNotFoundException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceNotFoundException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceNotFoundException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSecurityException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleSecurityException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSecurityException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSecurityException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSecurityException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-">TranslatableGuacamoleSecurityException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerBusyException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleServerBusyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerBusyException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerBusyException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleServerBusyException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-">TranslatableGuacamoleServerBusyException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleServerException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleServerException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-java.lang.String-">TranslatableGuacamoleServerException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionClosedException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleSessionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionClosedException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionClosedException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionClosedException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionClosedException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionConflictException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleSessionConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionConflictException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionConflictException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionConflictException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionConflictException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleSessionTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionTimeoutException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionTimeoutException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionTimeoutException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionTimeoutException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnauthorizedException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUnauthorizedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnauthorizedException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnauthorizedException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUnauthorizedException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-">TranslatableGuacamoleUnauthorizedException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnsupportedException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUnsupportedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnsupportedException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnsupportedException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUnsupportedException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-">TranslatableGuacamoleUnsupportedException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUpstreamException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUpstreamNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamNotFoundException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamNotFoundException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamNotFoundException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamNotFoundException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUpstreamTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamTimeoutException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamTimeoutException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamTimeoutException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamTimeoutException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamUnavailableException</span></a> - Exception in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A <code>GuacamoleUpstreamUnavailableException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamUnavailableException(String, TranslatableMessage, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamUnavailableException(String, TranslatableMessage)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamUnavailableException(String, String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamUnavailableException(String, String)</a></span> - Constructor for exception org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a> - Class in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage(String)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage(String, Object)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed(TunnelCloseEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected(TunnelConnectEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#Type--">Type()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Removes the value of the token with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">URIGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a URI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/URIGuacamoleProperty.html#URIGuacamoleProperty--">URIGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">The context of an active user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials(Collection&lt;Field&gt;, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials(CredentialsInfo, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials(CredentialsInfo)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user group of the Guacamole web application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A username field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dt>
+<dd>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/index.html b/doc/1.3.0/guacamole-ext/index.html
new file mode 100644
index 0000000..6f225dc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-ext 1.3.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/Environment.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
new file mode 100644
index 0000000..10727fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Environment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Environment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Interface Environment" class="title">Interface Environment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Environment</span></pre>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="GUACD_HOSTNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_HOSTNAME</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> GUACD_HOSTNAME</pre>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</li>
+</ul>
+<a name="GUACD_PORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_PORT</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> GUACD_PORT</pre>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</li>
+</ul>
+<a name="GUACD_SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GUACD_SSL</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> GUACD_SSL</pre>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                        Type&nbsp;defaultValue)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
new file mode 100644
index 0000000..c4014ea
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
@@ -0,0 +1,530 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LocalEnvironment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalEnvironment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Class LocalEnvironment" class="title">Class LocalEnvironment</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.environment.LocalEnvironment</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LocalEnvironment</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></pre>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.environment.Environment">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></h3>
+<code><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment</a></span>()</code>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LocalEnvironment--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalEnvironment</h4>
+<pre>public&nbsp;LocalEnvironment()
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while determining the
+                            environment of this Guacamole instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">Environment</a></code></span></div>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                               Type&nbsp;defaultValue)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">Environment</a></code></span></div>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">Environment</a></code></span></div>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">Environment</a></code></span></div>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
new file mode 100644
index 0000000..45f2a3a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.environment.Environment" class="title">Uses of Interface<br>org.apache.guacamole.environment.Environment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that implement <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></span></code>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
new file mode 100644
index 0000000..7e39179
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.environment.LocalEnvironment" class="title">Uses of Class<br>org.apache.guacamole.environment.LocalEnvironment</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.environment.LocalEnvironment</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
new file mode 100644
index 0000000..5acb747
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/environment/package-summary.html" target="classFrame">org.apache.guacamole.environment</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
new file mode 100644
index 0000000..7e5a41b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></td>
+<td class="colLast">
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></td>
+<td class="colLast">
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
new file mode 100644
index 0000000..4d85dbf
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.environment</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
new file mode 100644
index 0000000..bd4a5d0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.environment (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.environment (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.environment" class="title">Uses of Package<br>org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/environment/class-use/Environment.html#org.apache.guacamole.environment">Environment</a>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
new file mode 100644
index 0000000..9ffc21a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class BooleanField" class="title">Class BooleanField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.BooleanField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">BooleanField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field with strictly one possible value. It is assumed that the
+ field may be blank, but that its sole non-blank value is the value provided.
+ The provided value represents "true" while all other values, including
+ having no associated value, represent "false".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</code>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanField-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanField</h4>
+<pre>public&nbsp;BooleanField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</pre>
+<div class="block">Creates a new BooleanField with the given name and truth value. The
+ truth value is the value that, when assigned to this field, means that
+ this field is "true".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>truthValue</code> - The value to consider "true" for this field. All other values will
+     be considered "false".</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/DateField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/DateField.html
new file mode 100644
index 0000000..abdadcf
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/DateField.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DateField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class DateField" class="title">Class DateField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.DateField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DateField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a date field. The field may contain only date values which
+ conform to a standard pattern, defined by DateField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new DateField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</code>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)</code>
+<div class="block">Parses the given string into a corresponding date.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.DateField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DateField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DateField</h4>
+<pre>public&nbsp;DateField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new DateField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</pre>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>date</code> - The date value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted date, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding date. The string must
+ follow the standard format used by date fields, as defined by FORMAT
+ and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dateString</code> - The date string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date corresponding to the given date string, or null if the
+     provided date string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given date string does not conform to the standard format
+     used by date fields.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EmailField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
new file mode 100644
index 0000000..e08117b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EmailField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EmailField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EmailField" class="title">Class EmailField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EmailField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EmailField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which may contain an email address.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new EmailField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EmailField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EmailField</h4>
+<pre>public&nbsp;EmailField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new EmailField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EnumField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
new file mode 100644
index 0000000..0d1dcf6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EnumField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EnumField" class="title">Class EnumField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EnumField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EnumField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EnumField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnumField</h4>
+<pre>public&nbsp;EnumField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - All possible legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
new file mode 100644
index 0000000..5c1f252
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field.Type" class="title">Class Field.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field.Type</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">Field.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All types of fields which are available by default. Additional field
+ types may be defined by extensions by using a unique field type name and
+ registering that name with the form service within JavaScript.
+
+ See FormService.js.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span></code>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span></code>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span></code>
+<div class="block">An email address field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span></code>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span></code>
+<div class="block">Field type which allows selection of languages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span></code>
+<div class="block">A text field that can span more than one line.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span></code>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span></code>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#REDIRECT">REDIRECT</a></span></code>
+<div class="block">A redirect field whose value is an encoded URL to which the user
+ will be redirected.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span></code>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span></code>
+<div class="block">A text field, accepting arbitrary values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span></code>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span></code>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A username field.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#Type--">Type</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="TEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TEXT</pre>
+<div class="block">A text field, accepting arbitrary values.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.TEXT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="EMAIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL</pre>
+<div class="block">An email address field. This field type generally behaves
+ identically to arbitrary text fields, but has semantic differences.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.EMAIL">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME</pre>
+<div class="block">A username field. This field type generally behaves identically to
+ arbitrary text fields, but has semantic differences.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.USERNAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD</pre>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.PASSWORD">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUMERIC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUMERIC</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NUMERIC</pre>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.NUMERIC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="BOOLEAN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BOOLEAN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> BOOLEAN</pre>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.BOOLEAN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="ENUM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENUM</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ENUM</pre>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.ENUM">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="MULTILINE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTILINE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> MULTILINE</pre>
+<div class="block">A text field that can span more than one line.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.MULTILINE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TIMEZONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIMEZONE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIMEZONE</pre>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.TIMEZONE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LANGUAGE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LANGUAGE</pre>
+<div class="block">Field type which allows selection of languages. The languages
+ displayed are the set of languages supported by the Guacamole web
+ application. Legal values are valid language IDs, as dictated by
+ the filenames of Guacamole's available translations.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.LANGUAGE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE</pre>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.DATE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIME</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME</pre>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="QUERY_PARAMETER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_PARAMETER</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> QUERY_PARAMETER</pre>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.QUERY_PARAMETER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TERMINAL_COLOR_SCHEME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TERMINAL_COLOR_SCHEME</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TERMINAL_COLOR_SCHEME</pre>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.TERMINAL_COLOR_SCHEME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="REDIRECT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>REDIRECT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> REDIRECT</pre>
+<div class="block">A redirect field whose value is an encoded URL to which the user
+ will be redirected.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.Field.Type.REDIRECT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Type--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Type</h4>
+<pre>public&nbsp;Type()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.html
new file mode 100644
index 0000000..9287d9f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Field.html
@@ -0,0 +1,473 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field" class="title">Class Field</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a>, <a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a>, <a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a>, <a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a>, <a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a>, <a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a>, <a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a>, <a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a>, <a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a>, <a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a>, <a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a>, <a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a>, <a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a>, <a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Field</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form. Fields are generic
+ and typed dynamically through a type string, with the semantics of the field
+ defined by the type string. The behavior of each field type is defined
+ either through the web application itself (see FormService.js) or through
+ extensions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></span></code>
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field--">Field</a></span>()</code>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a></span>()</code>
+<div class="block">Returns a mutable collection of field options.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this field.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Sets the options available as possible values of this field.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Sets the type of this field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Field--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field()</pre>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Creates a new Field with the given name  and type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+<dd><code>options</code> - A collection of all possible valid options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name associated with this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name associated with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name associated with this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to assign to this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Sets the type of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getOptions()</pre>
+<div class="block">Returns a mutable collection of field options. Changes to this
+ collection directly affect the available options.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of field options, or null if the field has no
+     options.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptions-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setOptions</h4>
+<pre>public&nbsp;void&nbsp;setOptions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Sets the options available as possible values of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>options</code> - The options to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
new file mode 100644
index 0000000..fbd9a1f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FieldOption (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FieldOption (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class FieldOption" class="title">Class FieldOption</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.FieldOption</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FieldOption</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption</a></span>()</code>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle</a></span>()</code>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getValue--">getValue</a></span>()</code>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FieldOption--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption()</pre>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</li>
+</ul>
+<a name="FieldOption-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+<dd><code>title</code> - The human-readable title to associate with this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValue--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue()</pre>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value that will be assigned if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;void&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTitle--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTitle</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTitle()</pre>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTitle-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTitle</h4>
+<pre>public&nbsp;void&nbsp;setTitle(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>title</code> - A human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Form.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Form.html
new file mode 100644
index 0000000..1c8448a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/Form.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Form (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Form" class="title">Class Form</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Form</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Form</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes logical set of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form--">Form</a></span>()</code>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of this form.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name of this form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Form--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form()</pre>
+<div class="block">Creates a new Form object with no associated fields. The name is left
+ unset as null. If no form name is provided, this form must not be used
+ in the same context as another unnamed form.</div>
+</li>
+</ul>
+<a name="Form-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - A name which uniquely identifies this form.</dd>
+<dd><code>fields</code> - The fields to provided within the new Form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns a mutable collection of the fields associated with this form.
+ Changes to this collection affect the fields exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="setFields-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFields</h4>
+<pre>public&nbsp;void&nbsp;setFields(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Sets the collection of fields associated with this form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The collection of fields to associate with this form.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of this form. Form names must uniquely identify each
+ form.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of this form, or null if the form has no name.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name of this form. Form names must uniquely identify each form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign to this form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
new file mode 100644
index 0000000..ed63920
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LanguageField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LanguageField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class LanguageField" class="title">Class LanguageField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.LanguageField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LanguageField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a language field. The field may contain only valid language
+ identifiers as used by the Guacamole web application for its translations.
+ Language identifiers are defined by the filenames of the JSON files
+ containing the translation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</code>
+<div class="block">Parses the given string into a language ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LanguageField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LanguageField</h4>
+<pre>public&nbsp;LanguageField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new LanguageField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</pre>
+<div class="block">Parses the given string into a language ID string. As any string may be
+ a valid language ID as long as it has a corresponding translation, the
+ only transformation currently performed by this function is to ensure
+ that a blank language string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - The language string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the language corresponding to the given string, or null if
+     if the given language string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
new file mode 100644
index 0000000..61c4e30
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MultilineField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultilineField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class MultilineField" class="title">Class MultilineField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.MultilineField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">MultilineField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MultilineField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultilineField</h4>
+<pre>public&nbsp;MultilineField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new MultilineField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/NumericField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
new file mode 100644
index 0000000..30a14dd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NumericField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NumericField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class NumericField" class="title">Class NumericField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.NumericField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">NumericField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which may contain only integer values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new NumericField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</code>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="NumericField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NumericField</h4>
+<pre>public&nbsp;NumericField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new NumericField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</pre>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - The integer to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string representation of the given integer, or null if the given
+     integer was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)
+                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></pre>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse as an integer, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer representation of the given string, or null if the given
+     string was null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></code> - If the given string is not in a parseable format.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
new file mode 100644
index 0000000..d991816
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PasswordField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PasswordField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class PasswordField" class="title">Class PasswordField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.PasswordField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">PasswordField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="PasswordField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PasswordField</h4>
+<pre>public&nbsp;PasswordField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new PasswordField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/RedirectField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/RedirectField.html
new file mode 100644
index 0000000..3ddd79a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/RedirectField.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RedirectField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RedirectField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/RedirectField.html" target="_top">Frames</a></li>
+<li><a href="RedirectField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class RedirectField" class="title">Class RedirectField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.RedirectField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">RedirectField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A Guacamole field that redirects a user to another page.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/RedirectField.html#RedirectField-java.lang.String-java.net.URI-org.apache.guacamole.language.TranslatableMessage-">RedirectField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;redirectUrl,
+             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;redirectMessage)</code>
+<div class="block">Creates a new field which facilitates redirection of the user
+ to another page.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/RedirectField.html#getRedirectUrl--">getRedirectUrl</a></span>()</code>
+<div class="block">Returns the URL to which the user should be redirected.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/RedirectField.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RedirectField-java.lang.String-java.net.URI-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RedirectField</h4>
+<pre>public&nbsp;RedirectField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;redirectUrl,
+                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;redirectMessage)</pre>
+<div class="block">Creates a new field which facilitates redirection of the user
+ to another page.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of this field.</dd>
+<dd><code>redirectUrl</code> - The URL to which the user should be redirected.</dd>
+<dd><code>redirectMessage</code> - The translatable message that should be displayed for the user while
+     the browser redirects.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getRedirectUrl--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRedirectUrl</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRedirectUrl()</pre>
+<div class="block">Returns the URL to which the user should be redirected.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The URL to which the user should be redirected.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RedirectField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/RedirectField.html" target="_top">Frames</a></li>
+<li><a href="RedirectField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
new file mode 100644
index 0000000..2938de2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TerminalColorSchemeField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TerminalColorSchemeField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TerminalColorSchemeField" class="title">Class TerminalColorSchemeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TerminalColorSchemeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TerminalColorSchemeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a terminal color scheme field. The field may contain only valid
+ terminal color schemes as used by the Guacamole server terminal emulator
+ and protocols which leverage it (SSH, telnet, Kubernetes).</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TerminalColorSchemeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TerminalColorSchemeField</h4>
+<pre>public&nbsp;TerminalColorSchemeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TextField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TextField.html
new file mode 100644
index 0000000..de47d50
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TextField.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TextField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TextField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TextField" class="title">Class TextField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TextField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TextField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a basic text field. The field may generally contain any data, but
+ may not contain multiple lines.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TextField with the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TextField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TextField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="TextField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new TextField with the given name and possible values. As a
+ text field may contain any data by definition, any provided options are
+ simply known-good values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - A set of known legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</pre>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null. For all other cases, the given string is returned verbatim.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The given string, or null if the given string was null or empty.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
new file mode 100644
index 0000000..cbec728
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeField" class="title">Class TimeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time field. The field may contain only time values which
+ conform to a standard pattern, defined by TimeField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</code>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)</code>
+<div class="block">Parses the given string into a corresponding time.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.TimeField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeField</h4>
+<pre>public&nbsp;TimeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding time. The string must
+ follow the standard format used by time fields, as defined by
+ FORMAT and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeString</code> - The time string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The time corresponding to the given time string, or null if the
+     provided time string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given time string does not conform to the standard format
+     used by time fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</pre>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - The time value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted time, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
new file mode 100644
index 0000000..7391ed0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeZoneField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeZoneField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeZoneField" class="title">Class TimeZoneField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeZoneField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeZoneField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time zone field. The field may contain only valid time zone
+ identifiers, as defined by the IANA time zone database. Such identifiers are
+ also valid Java time zone IDs as dictated by TimeZone.getAvailableIDs().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</code>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeZoneField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeZoneField</h4>
+<pre>public&nbsp;TimeZoneField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</pre>
+<div class="block">Parses the given string into a time zone ID string. As these strings are
+ equivalent, the only transformation currently performed by this function
+ is to ensure that a blank time zone string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeZone</code> - The time zone string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the time zone corresponding to the given string, or null
+     if the given time zone string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
new file mode 100644
index 0000000..6694b7b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UsernameField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UsernameField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class UsernameField" class="title">Class UsernameField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.UsernameField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UsernameField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UsernameField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UsernameField</h4>
+<pre>public&nbsp;UsernameField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new UsernameField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
new file mode 100644
index 0000000..a598783
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.BooleanField" class="title">Uses of Class<br>org.apache.guacamole.form.BooleanField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.BooleanField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
new file mode 100644
index 0000000..0fa576e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.DateField" class="title">Uses of Class<br>org.apache.guacamole.form.DateField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.DateField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
new file mode 100644
index 0000000..bb5b521
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EmailField" class="title">Uses of Class<br>org.apache.guacamole.form.EmailField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EmailField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
new file mode 100644
index 0000000..9867862
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EnumField" class="title">Uses of Class<br>org.apache.guacamole.form.EnumField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EnumField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
new file mode 100644
index 0000000..7e8baf1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field.Type" class="title">Uses of Class<br>org.apache.guacamole.form.Field.Type</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.Field.Type</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
new file mode 100644
index 0000000..4703212
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
@@ -0,0 +1,412 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field" class="title">Uses of Class<br>org.apache.guacamole.form.Field</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></span></code>
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span></code>
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></span></code>
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></span></code>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></span></code>
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></span></code>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></span></code>
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></span></code>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></span></code>
+<div class="block">A Guacamole field that redirects a user to another page.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></span></code>
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></span></code>
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span></code>
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></span></code>
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></span></code>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
new file mode 100644
index 0000000..eb78576
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.FieldOption" class="title">Uses of Class<br>org.apache.guacamole.form.FieldOption</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.FieldOption</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
new file mode 100644
index 0000000..92238ac
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Form" class="title">Uses of Class<br>org.apache.guacamole.form.Form</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
new file mode 100644
index 0000000..6231ff8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.LanguageField" class="title">Uses of Class<br>org.apache.guacamole.form.LanguageField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.LanguageField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
new file mode 100644
index 0000000..a207ae7
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.MultilineField" class="title">Uses of Class<br>org.apache.guacamole.form.MultilineField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.MultilineField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
new file mode 100644
index 0000000..97309b3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.NumericField" class="title">Uses of Class<br>org.apache.guacamole.form.NumericField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.NumericField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
new file mode 100644
index 0000000..7ac2604
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.PasswordField" class="title">Uses of Class<br>org.apache.guacamole.form.PasswordField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.PasswordField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/RedirectField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/RedirectField.html
new file mode 100644
index 0000000..7a6481f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/RedirectField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.RedirectField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.RedirectField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/RedirectField.html" target="_top">Frames</a></li>
+<li><a href="RedirectField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.RedirectField" class="title">Uses of Class<br>org.apache.guacamole.form.RedirectField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.RedirectField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/RedirectField.html" target="_top">Frames</a></li>
+<li><a href="RedirectField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
new file mode 100644
index 0000000..405fd06
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField" class="title">Uses of Class<br>org.apache.guacamole.form.TerminalColorSchemeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TerminalColorSchemeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
new file mode 100644
index 0000000..a8c6a7e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TextField" class="title">Uses of Class<br>org.apache.guacamole.form.TextField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TextField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
new file mode 100644
index 0000000..5f5b41f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
new file mode 100644
index 0000000..52efaec
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeZoneField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeZoneField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeZoneField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
new file mode 100644
index 0000000..09f1360
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.UsernameField" class="title">Uses of Class<br>org.apache.guacamole.form.UsernameField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.UsernameField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
new file mode 100644
index 0000000..fe436c9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/form/package-summary.html" target="classFrame">org.apache.guacamole.form</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="RedirectField.html" title="class in org.apache.guacamole.form" target="classFrame">RedirectField</a></li>
+<li><a href="TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
new file mode 100644
index 0000000..c9c9d4d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.form</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></td>
+<td class="colLast">
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></td>
+<td class="colLast">
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></td>
+<td class="colLast">
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></td>
+<td class="colLast">
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></td>
+<td class="colLast">
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></td>
+<td class="colLast">
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></td>
+<td class="colLast">
+<div class="block">A Guacamole field that redirects a user to another page.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></td>
+<td class="colLast">
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></td>
+<td class="colLast">
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></td>
+<td class="colLast">
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></td>
+<td class="colLast">
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.form Description">Package org.apache.guacamole.form Description</h2>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
new file mode 100644
index 0000000..af197da
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.form</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">RedirectField</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-use.html
new file mode 100644
index 0000000..3209f0b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/form/package-use.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.form (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.form" class="title">Uses of Package<br>org.apache.guacamole.form</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.form">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.net.auth">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.net.auth.credentials">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.protocols">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/Translatable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
new file mode 100644
index 0000000..a31810d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Translatable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Translatable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Interface Translatable" class="title">Interface Translatable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a>, <a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Translatable</span></pre>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..4b19752
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleClientBadTypeException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleClientBadTypeException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleClientBadTypeException" class="title">Class TranslatableGuacamoleClientBadTypeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientBadTypeException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleClientBadTypeException</span>
+extends org.apache.guacamole.GuacamoleClientBadTypeException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleClientBadTypeException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleClientBadTypeException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleClientBadTypeException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientBadTypeException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientException.html
new file mode 100644
index 0000000..ddf35f1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientException.html
@@ -0,0 +1,456 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleClientException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleClientException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleClientException" class="title">Class TranslatableGuacamoleClientException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleClientException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleClientException</span>
+extends org.apache.guacamole.GuacamoleClientException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleClientException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleClientException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleClientException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleClientException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html
new file mode 100644
index 0000000..808d487
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleClientOverrunException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleClientOverrunException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleClientOverrunException" class="title">Class TranslatableGuacamoleClientOverrunException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientOverrunException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleClientOverrunException</span>
+extends org.apache.guacamole.GuacamoleClientOverrunException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleClientOverrunException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleClientOverrunException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleClientOverrunException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientOverrunException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientOverrunException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientOverrunException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientOverrunException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientOverrunException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..557aba4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleClientTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleClientTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleClientTimeoutException" class="title">Class TranslatableGuacamoleClientTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTimeoutException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleClientTimeoutException</span>
+extends org.apache.guacamole.GuacamoleClientTimeoutException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleClientTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleClientTimeoutException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleClientTimeoutException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTimeoutException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html
new file mode 100644
index 0000000..7064734
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleClientTooManyException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleClientTooManyException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleClientTooManyException" class="title">Class TranslatableGuacamoleClientTooManyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTooManyException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleClientTooManyException</span>
+extends org.apache.guacamole.GuacamoleClientTooManyException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleClientTooManyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleClientTooManyException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleClientTooManyException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTooManyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTooManyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTooManyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleClientTooManyException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleClientTooManyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..684a7a6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleConnectionClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleConnectionClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleConnectionClosedException" class="title">Class TranslatableGuacamoleConnectionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleConnectionClosedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleConnectionClosedException</span>
+extends org.apache.guacamole.GuacamoleConnectionClosedException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleConnectionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleConnectionClosedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleConnectionClosedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleConnectionClosedException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html
new file mode 100644
index 0000000..f1731cb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html
@@ -0,0 +1,494 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleCredentialsException" class="title">Class TranslatableGuacamoleCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleCredentialsException</span>
+extends <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a>
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleCredentialsException</code></a> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                         <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information. The message must
+ be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                 <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information. The message must be
+ provided in both non-translatable (readable as-written) and translatable
+ forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information. The message must
+ be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                 <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information. The message must be
+ provided in both non-translatable (readable as-written) and translatable
+ forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..a8889b4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleInsufficientCredentialsException" class="title">Class TranslatableGuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleInsufficientCredentialsException</span>
+extends <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a>
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                     <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                     <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                             <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information. The
+ message must be provided in both non-translatable (readable as-written)
+ and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                             <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information. The message
+ must be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                             <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information. The
+ message must be provided in both non-translatable (readable as-written)
+ and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                             <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information. The message
+ must be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..141f054
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html
@@ -0,0 +1,499 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleInvalidCredentialsException" class="title">Class TranslatableGuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleInvalidCredentialsException</span>
+extends <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a>
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                        <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                        <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information. The
+ message must be provided in both non-translatable (readable as-written)
+ and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                        <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                        <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information. The message
+ must be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                        <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information. The
+ message must be provided in both non-translatable (readable as-written)
+ and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;TranslatableGuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                        <a href="../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information. The message
+ must be provided in both non-translatable (readable as-written) and
+ translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html
new file mode 100644
index 0000000..3cd700a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleResourceClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleResourceClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleResourceClosedException" class="title">Class TranslatableGuacamoleResourceClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceClosedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleResourceClosedException</span>
+extends org.apache.guacamole.GuacamoleResourceClosedException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleResourceClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleResourceClosedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleResourceClosedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceClosedException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html
new file mode 100644
index 0000000..a19c8a1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleResourceConflictException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleResourceConflictException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleResourceConflictException" class="title">Class TranslatableGuacamoleResourceConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceConflictException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleResourceConflictException</span>
+extends org.apache.guacamole.GuacamoleResourceConflictException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleResourceConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleResourceConflictException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleResourceConflictException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceConflictException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..68c7cfe
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleResourceNotFoundException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleResourceNotFoundException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleResourceNotFoundException" class="title">Class TranslatableGuacamoleResourceNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceNotFoundException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleResourceNotFoundException</span>
+extends org.apache.guacamole.GuacamoleResourceNotFoundException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleResourceNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleResourceNotFoundException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleResourceNotFoundException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleResourceNotFoundException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html
new file mode 100644
index 0000000..41b1086
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleSecurityException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleSecurityException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleSecurityException" class="title">Class TranslatableGuacamoleSecurityException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleSecurityException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleSecurityException</span>
+extends org.apache.guacamole.GuacamoleSecurityException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleSecurityException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleSecurityException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleSecurityException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleSecurityException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSecurityException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSecurityException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSecurityException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSecurityException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleSecurityException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSecurityException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html
new file mode 100644
index 0000000..959936f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleServerBusyException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleServerBusyException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleServerBusyException" class="title">Class TranslatableGuacamoleServerBusyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerBusyException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleServerBusyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleServerBusyException</span>
+extends org.apache.guacamole.GuacamoleServerBusyException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleServerBusyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleServerBusyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleServerBusyException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleServerBusyException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerBusyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerBusyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerBusyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerBusyException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerBusyException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerException.html
new file mode 100644
index 0000000..37df002
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleServerException.html
@@ -0,0 +1,456 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleServerException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleServerException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleServerException" class="title">Class TranslatableGuacamoleServerException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleServerException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleServerException</span>
+extends org.apache.guacamole.GuacamoleServerException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleServerException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleServerException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-java.lang.String-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleServerException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleServerException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleServerException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleServerException</h4>
+<pre>public&nbsp;TranslatableGuacamoleServerException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html
new file mode 100644
index 0000000..1fdef15
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleSessionClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleSessionClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleSessionClosedException" class="title">Class TranslatableGuacamoleSessionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionClosedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleSessionClosedException</span>
+extends org.apache.guacamole.GuacamoleSessionClosedException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleSessionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleSessionClosedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleSessionClosedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionClosedException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionClosedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html
new file mode 100644
index 0000000..eb21e8e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleSessionConflictException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleSessionConflictException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleSessionConflictException" class="title">Class TranslatableGuacamoleSessionConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionConflictException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleSessionConflictException</span>
+extends org.apache.guacamole.GuacamoleSessionConflictException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleSessionConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleSessionConflictException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleSessionConflictException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionConflictException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionConflictException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..6c72b09
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleSessionTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleSessionTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleSessionTimeoutException" class="title">Class TranslatableGuacamoleSessionTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionTimeoutException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleSessionTimeoutException</span>
+extends org.apache.guacamole.GuacamoleSessionTimeoutException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleSessionTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleSessionTimeoutException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleSessionTimeoutException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleSessionTimeoutException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..4b615a4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html
@@ -0,0 +1,466 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:31 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUnauthorizedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUnauthorizedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUnauthorizedException" class="title">Class TranslatableGuacamoleUnauthorizedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUnauthorizedException</span>
+extends org.apache.guacamole.GuacamoleUnauthorizedException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUnauthorizedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                  <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                  <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnauthorizedException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html
new file mode 100644
index 0000000..8e79bb4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUnsupportedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUnsupportedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUnsupportedException" class="title">Class TranslatableGuacamoleUnsupportedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnsupportedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUnsupportedException</span>
+extends org.apache.guacamole.GuacamoleUnsupportedException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUnsupportedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnsupportedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnsupportedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnsupportedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnsupportedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnsupportedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUnsupportedException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUnsupportedException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html
new file mode 100644
index 0000000..f4d93fc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html
@@ -0,0 +1,456 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUpstreamException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUpstreamException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUpstreamException" class="title">Class TranslatableGuacamoleUpstreamException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUpstreamException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUpstreamException</span>
+extends org.apache.guacamole.GuacamoleUpstreamException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUpstreamException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUpstreamException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUpstreamException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUpstreamException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message. The message must be provided in both non-translatable (readable
+ as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..942b324
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUpstreamNotFoundException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUpstreamNotFoundException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUpstreamNotFoundException" class="title">Class TranslatableGuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamNotFoundException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUpstreamNotFoundException</span>
+extends org.apache.guacamole.GuacamoleUpstreamNotFoundException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUpstreamNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUpstreamNotFoundException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUpstreamNotFoundException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..5437647
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUpstreamTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUpstreamTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUpstreamTimeoutException" class="title">Class TranslatableGuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamTimeoutException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUpstreamTimeoutException</span>
+extends org.apache.guacamole.GuacamoleUpstreamTimeoutException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUpstreamTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUpstreamTimeoutException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUpstreamTimeoutException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..0b73c19
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,461 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableGuacamoleUpstreamUnavailableException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableGuacamoleUpstreamUnavailableException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableGuacamoleUpstreamUnavailableException" class="title">Class TranslatableGuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamUnavailableException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableGuacamoleUpstreamUnavailableException</span>
+extends org.apache.guacamole.GuacamoleUpstreamUnavailableException
+implements <a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></pre>
+<div class="block">A <code>GuacamoleUpstreamUnavailableException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-java.lang.Throwable-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUpstreamUnavailableException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUpstreamUnavailableException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                         <a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>translatableMessage</code> - A translatable, human-readable description of the exception that
+     occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause. The message must be provided in both
+ non-translatable (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableGuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;TranslatableGuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message. The message must be provided in both non-translatable
+ (readable as-written) and translatable forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human-readable description of the exception that occurred. This
+     message should be readable on its own and as-written, without
+     requiring a translation service.</dd>
+<dd><code>key</code> - The arbitrary key which can be used to look up the message to be
+     displayed in the user's native language.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">Translatable</a></code></span></div>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableGuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
new file mode 100644
index 0000000..05da5c6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableMessage (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableMessage (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableMessage" class="title">Class TranslatableMessage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableMessage</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableMessage</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey</a></span>()</code>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables</a></span>()</code>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableMessage-java.lang.String-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+<dd><code>variables</code> - An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the
+     given translation key.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getKey--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKey</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getKey()</pre>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The arbitrary key associated with the human-readable message.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVariables--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getVariables</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getVariables()</pre>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.
+ If not applicable, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the key,
+     or null if not applicable.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
new file mode 100644
index 0000000..54dfe59
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.language.Translatable" class="title">Uses of Interface<br>org.apache.guacamole.language.Translatable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> that implement <a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form">RedirectField</a></span></code>
+<div class="block">A Guacamole field that redirects a user to another page.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a> in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> that implement <a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></span></code>
+<div class="block">A <code>GuacamoleClientBadTypeException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></span></code>
+<div class="block">A <code>GuacamoleClientException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></span></code>
+<div class="block">A <code>GuacamoleClientOverrunException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></span></code>
+<div class="block">A <code>GuacamoleClientTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></span></code>
+<div class="block">A <code>GuacamoleClientTooManyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></span></code>
+<div class="block">A <code>GuacamoleConnectionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleCredentialsException</code></a> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></span></code>
+<div class="block">A <code>GuacamoleResourceClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></span></code>
+<div class="block">A <code>GuacamoleResourceConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A <code>GuacamoleResourceNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></span></code>
+<div class="block">A <code>GuacamoleSecurityException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></span></code>
+<div class="block">A <code>GuacamoleServerBusyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></span></code>
+<div class="block">A <code>GuacamoleServerException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></span></code>
+<div class="block">A <code>GuacamoleSessionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></span></code>
+<div class="block">A <code>GuacamoleSessionConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></span></code>
+<div class="block">A <code>GuacamoleSessionTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></span></code>
+<div class="block">A <code>GuacamoleUnauthorizedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></span></code>
+<div class="block">A <code>GuacamoleUnsupportedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></span></code>
+<div class="block">A <code>GuacamoleUpstreamException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">A <code>GuacamoleUpstreamNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">A <code>GuacamoleUpstreamTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">A <code>GuacamoleUpstreamUnavailableException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientBadTypeException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..ec12402
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientBadTypeException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientException.html
new file mode 100644
index 0000000..5c49e58
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleClientException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleClientException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientOverrunException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientOverrunException.html
new file mode 100644
index 0000000..3739198
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientOverrunException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..075aac7
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTooManyException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTooManyException.html
new file mode 100644
index 0000000..f096bb5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTooManyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleConnectionClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..1a06c14
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleConnectionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleCredentialsException.html
new file mode 100644
index 0000000..5d3f714
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleCredentialsException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInsufficientCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..d79612b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInvalidCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..b1d39ab
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleInvalidCredentialsException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceClosedException.html
new file mode 100644
index 0000000..acbe85a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceConflictException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceConflictException.html
new file mode 100644
index 0000000..4eae9d0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceNotFoundException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..a26ed3b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSecurityException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSecurityException.html
new file mode 100644
index 0000000..7a9da8a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSecurityException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSecurityException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSecurityException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSecurityException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleSecurityException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleSecurityException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerBusyException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerBusyException.html
new file mode 100644
index 0000000..91cbde2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerBusyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerBusyException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerBusyException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerBusyException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleServerBusyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleServerBusyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerException.html
new file mode 100644
index 0000000..4562617
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleServerException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleServerException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleServerException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleServerException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionClosedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionClosedException.html
new file mode 100644
index 0000000..c2c2216
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionConflictException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionConflictException.html
new file mode 100644
index 0000000..2bd665d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..c285e6d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnauthorizedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..ebcc350
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnauthorizedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnsupportedException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnsupportedException.html
new file mode 100644
index 0000000..81c1d2d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUnsupportedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamException.html
new file mode 100644
index 0000000..94aea99
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUpstreamException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUpstreamException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamNotFoundException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..b88587c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamTimeoutException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..d55bf5c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamUnavailableException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..9daa17b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="TranslatableGuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
new file mode 100644
index 0000000..0bf6c94
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
@@ -0,0 +1,691 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableMessage" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableMessage</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> that return <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RedirectField.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/RedirectField.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with parameters of type <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/RedirectField.html#RedirectField-java.lang.String-java.net.URI-org.apache.guacamole.language.TranslatableMessage-">RedirectField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;redirectUrl,
+             <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;redirectMessage)</code>
+<div class="block">Creates a new field which facilitates redirection of the user
+ to another page.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> that return <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUnauthorizedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleConnectionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleServerBusyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUnsupportedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Translatable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleSessionConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleClientBadTypeException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleClientTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleInsufficientCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleServerException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleResourceClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUpstreamUnavailableException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleResourceConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUpstreamTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleSessionTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleInvalidCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUpstreamException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleClientTooManyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleResourceNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleUpstreamNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleClientOverrunException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleClientException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleSecurityException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TranslatableGuacamoleSessionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> with parameters of type <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html#TranslatableGuacamoleClientBadTypeException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientBadTypeException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html#TranslatableGuacamoleClientException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html#TranslatableGuacamoleClientOverrunException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientOverrunException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html#TranslatableGuacamoleClientTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html#TranslatableGuacamoleClientTooManyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleClientTooManyException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html#TranslatableGuacamoleConnectionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleConnectionClosedException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                     <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                <a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html#TranslatableGuacamoleResourceClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html#TranslatableGuacamoleResourceConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html#TranslatableGuacamoleResourceNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleResourceNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html#TranslatableGuacamoleSecurityException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSecurityException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html#TranslatableGuacamoleServerBusyException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerBusyException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html#TranslatableGuacamoleServerException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleServerException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html#TranslatableGuacamoleSessionClosedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                           <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionClosedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html#TranslatableGuacamoleSessionConflictException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionConflictException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html#TranslatableGuacamoleSessionTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleSessionTimeoutException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html#TranslatableGuacamoleUnauthorizedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnauthorizedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html#TranslatableGuacamoleUnsupportedException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUnsupportedException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html#TranslatableGuacamoleUpstreamException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html#TranslatableGuacamoleUpstreamNotFoundException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                              <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamNotFoundException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html#TranslatableGuacamoleUpstreamTimeoutException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamTimeoutException with the
+ given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html#TranslatableGuacamoleUpstreamUnavailableException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-">TranslatableGuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new TranslatableGuacamoleUpstreamUnavailableException with the
+ given message and cause.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
new file mode 100644
index 0000000..77ee1f0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
@@ -0,0 +1,62 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/language/package-summary.html" target="classFrame">org.apache.guacamole.language</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientBadTypeException</a></li>
+<li><a href="TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientException</a></li>
+<li><a href="TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientOverrunException</a></li>
+<li><a href="TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientTimeoutException</a></li>
+<li><a href="TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleClientTooManyException</a></li>
+<li><a href="TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleConnectionClosedException</a></li>
+<li><a href="TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleCredentialsException</a></li>
+<li><a href="TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleInsufficientCredentialsException</a></li>
+<li><a href="TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleInvalidCredentialsException</a></li>
+<li><a href="TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceClosedException</a></li>
+<li><a href="TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceConflictException</a></li>
+<li><a href="TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleResourceNotFoundException</a></li>
+<li><a href="TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSecurityException</a></li>
+<li><a href="TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleServerBusyException</a></li>
+<li><a href="TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleServerException</a></li>
+<li><a href="TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionClosedException</a></li>
+<li><a href="TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionConflictException</a></li>
+<li><a href="TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleSessionTimeoutException</a></li>
+<li><a href="TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUnauthorizedException</a></li>
+<li><a href="TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUnsupportedException</a></li>
+<li><a href="TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamException</a></li>
+<li><a href="TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamNotFoundException</a></li>
+<li><a href="TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamTimeoutException</a></li>
+<li><a href="TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableGuacamoleUpstreamUnavailableException</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
new file mode 100644
index 0000000..1d1932c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></td>
+<td class="colLast">
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientBadTypeException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleClientBadTypeException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleClientException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientOverrunException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleClientOverrunException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTimeoutException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleClientTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleClientTooManyException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleClientTooManyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleConnectionClosedException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleConnectionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleCredentialsException</code></a> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A <a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceClosedException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleResourceClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceConflictException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleResourceConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleResourceNotFoundException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleResourceNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSecurityException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleSecurityException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerBusyException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleServerBusyException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleServerException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleServerException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionClosedException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleSessionClosedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionConflictException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleSessionConflictException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleSessionTimeoutException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleSessionTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnauthorizedException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUnauthorizedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUnsupportedException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUnsupportedException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUpstreamException</code> whose associated message is translatable
+ and can be passed through an arbitrary translation service, producing a
+ human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamNotFoundException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUpstreamNotFoundException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamTimeoutException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUpstreamTimeoutException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleUpstreamUnavailableException</a></td>
+<td class="colLast">
+<div class="block">A <code>GuacamoleUpstreamUnavailableException</code> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
new file mode 100644
index 0000000..2faa562
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.language</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientBadTypeException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientBadTypeException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientOverrunException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientOverrunException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientTooManyException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTooManyException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceClosedException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceConflictException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceConflictException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceNotFoundException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceNotFoundException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInsufficientCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInvalidCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnauthorizedException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSecurityException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleServerException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleConnectionClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleConnectionClosedException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleServerBusyException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerBusyException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUnsupportedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnsupportedException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSessionClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionClosedException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSessionConflictException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionConflictException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSessionTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamNotFoundException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamNotFoundException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamUnavailableException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamUnavailableException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamException</span></a> (implements org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-use.html
new file mode 100644
index 0000000..e902c58
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/language/package-use.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.language (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.language (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.language" class="title">Uses of Package<br>org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> used by <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/Translatable.html#org.apache.guacamole.form">Translatable</a>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/TranslatableMessage.html#org.apache.guacamole.form">TranslatableMessage</a>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> used by <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/Translatable.html#org.apache.guacamole.language">Translatable</a>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/TranslatableMessage.html#org.apache.guacamole.language">TranslatableMessage</a>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
new file mode 100644
index 0000000..4aa27b0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
@@ -0,0 +1,608 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractActiveConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractActiveConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractActiveConnection" class="title">Class AbstractActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractActiveConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></pre>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActiveConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractActiveConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractActiveConnection</h4>
+<pre>public&nbsp;AbstractActiveConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>public&nbsp;void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>public&nbsp;void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..b5c2d21
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticatedUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticatedUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticatedUser" class="title">Class AbstractAuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></pre>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality. Username comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticatedUser</h4>
+<pre>public&nbsp;AbstractAuthenticatedUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">AuthenticatedUser</a></code></span></div>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">AuthenticatedUser</a></code></span></div>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..b465631
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
@@ -0,0 +1,660 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticationProvider" class="title">Class AbstractAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticationProvider</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></pre>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions. Implementations must provide their
+ own <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--"><code>AuthenticationProvider.getIdentifier()</code></a>, but otherwise need only override an implemented
+ function if they wish to actually implement the functionality defined for
+ that function by the AuthenticationProvider interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticationProvider</h4>
+<pre>public&nbsp;AbstractAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources which are not specific to a user's session
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.
+
+ <p>This implementation simply returns the provided
+ <code>authenticatedUser</code> without modification. Implementations that
+ wish to update a user's <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> object with respect to
+ new <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> received in requests which follow the initial,
+ successful authentication attempt should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without modification. Implementations that wish to update a user's
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> object with respect to newly-updated
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> (such as those received
+ in requests which follow the initial, successful authentication attempt)
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                            <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                            <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without performing any decoration. Implementations that wish to augment
+ the functionality or data provided by other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                              <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply invokes
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> with the
+ provided <code>context</code>, <code>authenticatedUser</code>, and
+ <code>credentials</code>. Implementations which override
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> and which
+ need to update their existing decorated object following possible
+ updates to the <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> (rather
+ than generate an entirely new decorated object) should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>public&nbsp;void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> is being unloaded
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
new file mode 100644
index 0000000..05e076d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
@@ -0,0 +1,500 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnection" class="title">Class AbstractConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnection</h4>
+<pre>public&nbsp;AbstractConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
new file mode 100644
index 0000000..5c6fca5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnectionGroup" class="title">Class AbstractConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnectionGroup</h4>
+<pre>public&nbsp;AbstractConnectionGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
new file mode 100644
index 0000000..5afbe3c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractIdentifiable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractIdentifiable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractIdentifiable" class="title">Class AbstractIdentifiable</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractIdentifiable</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractIdentifiable</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.
+ The identifier comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractIdentifiable--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractIdentifiable</h4>
+<pre>public&nbsp;AbstractIdentifiable()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
new file mode 100644
index 0000000..ca88ad0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
@@ -0,0 +1,527 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractSharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractSharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractSharingProfile" class="title">Class AbstractSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractSharingProfile</h4>
+<pre>public&nbsp;AbstractSharingProfile()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>primaryConnectionIdentifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
new file mode 100644
index 0000000..be47ef5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
@@ -0,0 +1,745 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUser" class="title">Class AbstractUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUser</h4>
+<pre>public&nbsp;AbstractUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose the date and time that a user was last active should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.
+
+ <p>This implementation simply returns <code>this</code>. Implementations that
+ wish to expose permissions which apply indirectly (such as through
+ group inheritance) should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
new file mode 100644
index 0000000..2338649
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
@@ -0,0 +1,906 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserContext" class="title">Class AbstractUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions. Implementations must provide their own <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> and
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--"><code>UserContext.getAuthenticationProvider()</code></a>, but otherwise need only override an
+ implemented function if they wish to actually implement the functionality
+ defined for that function by the UserContext interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span></code>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getPrivileged--">getPrivileged</a></span>()</code>
+<div class="block">Returns a user context which provides privileged access.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.UserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_ROOT_CONNECTION_GROUP</h4>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEFAULT_ROOT_CONNECTION_GROUP</pre>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserContext--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserContext</h4>
+<pre>public&nbsp;AbstractUserContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><code>User</code></a> returned by <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> (the current user
+ associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>. Implementations that wish to
+ expose the existence of other users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose user groups should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the root connection group returned by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a>.
+ Implementations that wish to provide a structured connection hierarchy
+ should override this function. If only a flat list of connections will
+ be used, only <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose the status of active connections
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to provide screen sharing functionality
+ through the use of sharing profiles should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose connection usage history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose user login/logout history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.
+
+ <p>This implementation returns a new <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionGroup</code></a> with the
+ identifier defined by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP"><code>DEFAULT_ROOT_CONNECTION_GROUP</code></a> and
+ containing all connections exposed by the <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> returned by
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a>. Implementations that wish to provide
+ a structured connection hierarchy should override this function. If only
+ a flat list of connections will be used, only
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user attributes as fields
+ within user edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user group attributes as
+ fields within user group edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection attributes as
+ fields within connection edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection group attributes
+ as fields within connection group edit screens should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom sharing profile attributes as
+ fields within sharing profile edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the user associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> is
+ being logged out should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getPrivileged--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPrivileged</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getPrivileged()</pre>
+<div class="block">Returns a user context which provides privileged access. Unlike the
+ original user context, which is required to enforce its own permissions
+ and act only within the rights of the associated user, the user context
+ returned by this function MAY ignore the restrictions that otherwise
+ limit the current user's access.
+
+ <p>This function is intended to allow extensions which decorate other
+ extensions to act independently of the restrictions that affect the
+ current user. This function will only be invoked by extensions and
+ WILL NOT be invoked directly by the web application. Implementations of
+ this function MAY still enforce access restrictions, particularly if
+ they do not want to grant full, unrestricted access to other extensions.
+
+ <p>A default implementation which simply returns <code>this</code> is
+ provided for compatibility with Apache Guacamole 1.1.0 and older.
+
+ <p>This implementation simply returns <code>this</code>. Implementations
+ that wish to provide additional privileges to extensions requesting
+ privileged access should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">getPrivileged</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A user context instance which MAY ignore some or all restrictions
+     which otherwise limit the current user's access.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
new file mode 100644
index 0000000..94cd94c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
@@ -0,0 +1,681 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserGroup" class="title">Class AbstractUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AbstractUserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserGroup</h4>
+<pre>public&nbsp;AbstractUserGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
new file mode 100644
index 0000000..75687fc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActiveConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActiveConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":18,"i1":18,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":18,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActiveConnection" class="title">Interface ActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</pre>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></span>()</code>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="isConnectable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isConnectable</h4>
+<pre>default&nbsp;boolean&nbsp;isConnectable()</pre>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the user that retrieved this ActiveConnection may join the
+     ActiveConnection through a call to
+     <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>default&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
new file mode 100644
index 0000000..c470bcd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecord (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecord (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecord" class="title">Interface ActivityRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecord</span></pre>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a></span>()</code>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the activity began.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></span>()</code>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the activity began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity began.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEndDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getEndDate()</pre>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity ended, or null if the activity is
+     still ongoing or if the end time is unknown.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known. If the hostname or IP
+ address is not known, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who performed or is performing the associated
+     activity.</dd>
+</dl>
+</li>
+</ul>
+<a name="isActive--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isActive</h4>
+<pre>boolean&nbsp;isActive()</pre>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the activity associated with this record is still ongoing,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..cd251f3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet.SortableProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet.SortableProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ActivityRecordSet.SortableProperty" class="title">Enum ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ActivityRecordSet.SortableProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</pre>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#START_DATE">START_DATE</a></span></code>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="START_DATE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>START_DATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> START_DATE</pre>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ActivityRecordSet.SortableProperty c : ActivityRecordSet.SortableProperty.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
new file mode 100644
index 0000000..c19c25d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecordSet" class="title">Interface ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></pre>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span></code>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                   boolean&nbsp;desc)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
new file mode 100644
index 0000000..956b04b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Attributes (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Attributes (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Attributes" class="title">Interface Attributes</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Attributes</span></pre>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
new file mode 100644
index 0000000..baa3a50
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticatedUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticatedUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticatedUser" class="title">Interface AuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span></code>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ANONYMOUS_IDENTIFIER</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ANONYMOUS_IDENTIFIER</pre>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that authenticated this user.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The credentials provided by the user when they authenticated.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
new file mode 100644
index 0000000..9b010a2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
@@ -0,0 +1,551 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticationProvider" class="title">Interface AuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticationProvider</span></pre>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users. Access to such data is limited according to the
+ AuthenticationProvider implementation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation. This identifier may not be null
+ and must be unique across all AuthenticationProviders loaded by the
+ Guacamole web application.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this AuthenticationProvider, which
+     may not be null.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                       <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                       <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
new file mode 100644
index 0000000..8ac4562
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connectable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connectable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":50,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connectable" class="title">Interface Connectable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connectable</span></pre>
+<div class="block">An object which Guacamole can connect to.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>int&nbsp;getActiveConnections()</pre>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
new file mode 100644
index 0000000..017ebdf
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
@@ -0,0 +1,517 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":18,"i2":50,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connection" class="title">Interface Connection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process. The
+ backing GuacamoleConfiguration may be intentionally obfuscated or tokenized
+ to protect sensitive configuration information.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>default <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <code>getConnectionHistory</code>, which returns the connection history
+     as an ActivityRecordSet that can be easily sorted and filtered.
+     While the getHistory() method is provided for API compatibility,
+     new implementations should avoid use of this method and, instead,
+     implement the getConnectionHistory() method.</span></div>
+</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+default&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This function has been deprecated in favor of
+     <code>getConnectionHistory</code>, which returns the connection history
+     as an ActivityRecordSet that can be easily sorted and filtered.
+     While the getHistory() method is provided for API compatibility,
+     new implementations should avoid use of this method and, instead,
+     implement the getConnectionHistory() method.</span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first). If connection history tracking is
+ not implemented this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history of this
+     Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this connection, or if permission is
+     denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>default&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users. ConnectionRecords in this list will be sorted in descending order
+ of end time (active connections are first), and then in descending order
+ of start time (newer connections are first). If connection history
+ tracking has not been implemented, or has been implemented using the
+ deprecated <code>getHistory</code> method, this function should throw
+ GuacamoleUnsupportedExpcetion.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ActivityRecordSet containing ConnectionRecords representing the
+     usage history of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this connection, or if permission is
+     denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
new file mode 100644
index 0000000..8af935a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ConnectionGroup.Type" class="title">Enum ConnectionGroup.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ConnectionGroup.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ConnectionGroup.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</pre>
+<div class="block">All legal types of connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#BALANCING">BALANCING</a></span></code>
+<div class="block">A connection group that acts as a load balancer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#ORGANIZATIONAL">ORGANIZATIONAL</a></span></code>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ORGANIZATIONAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATIONAL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> ORGANIZATIONAL</pre>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container. An organizational
+ connection group is analogous to a directory or folder in a
+ filesystem.</div>
+</li>
+</ul>
+<a name="BALANCING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BALANCING</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> BALANCING</pre>
+<div class="block">A connection group that acts as a load balancer. A balancing
+ connection group can be connected to in the same manner as a
+ connection, and will transparently route to the least-used
+ underlying connection.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ConnectionGroup.Type c : ConnectionGroup.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
new file mode 100644
index 0000000..51d9b0a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionGroup" class="title">Interface ConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span></code>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
new file mode 100644
index 0000000..b04b698
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecord (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecord (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecord" class="title">Interface ConnectionRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionRecord</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></pre>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName</a></span>()</code>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName</a></span>()</code>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecord">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection associated with this connection
+     record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionName()</pre>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the connection associated with this connection record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileName--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileName()</pre>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
new file mode 100644
index 0000000..219ed71
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecordSet" class="title">Interface ConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">ConnectionRecordSet</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</pre>
+<div class="block">The set of all available connection records, or a subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
new file mode 100644
index 0000000..b21e0d8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
@@ -0,0 +1,567 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Credentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Credentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class Credentials" class="title">Class Credentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.Credentials</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Credentials</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.
+
+ This class is used along with AuthenticationProvider to provide arbitrary
+ HTTP-based authentication for Guacamole.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.guacamole.net.auth.Credentials">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+           javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname</a></span>()</code>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>javax.servlet.http.HttpServletRequest</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest</a></span>()</code>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>javax.servlet.http.HttpSession</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession</a></span>()</code>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</code>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</code>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession</a></span>(javax.servlet.http.HttpSession&nbsp;session)</code>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Credentials</h4>
+<pre>public&nbsp;Credentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+                   javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.  The information is assigned to the various
+ storage objects, and the remote hostname and address is parsed out
+ of the request object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username that was provided for authentication.</dd>
+<dd><code>password</code> - The password that was provided for authentication.</dd>
+<dd><code>request</code> - The HTTP request associated with the authentication
+     request.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The password associated with this username/password pair, or
+         null if no password has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The username associated with this username/password pair, or
+         null if no username has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre>public&nbsp;javax.servlet.http.HttpServletRequest&nbsp;getRequest()</pre>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpServletRequest associated with this set of credentials,
+         or null if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRequest-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequest</h4>
+<pre>public&nbsp;void&nbsp;setRequest(javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest to associated with this set of
+                 credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSession--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSession</h4>
+<pre>public&nbsp;javax.servlet.http.HttpSession&nbsp;getSession()</pre>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpSession associated with this set of credentials, or null
+         if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSession-javax.servlet.http.HttpSession-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSession</h4>
+<pre>public&nbsp;void&nbsp;setSession(javax.servlet.http.HttpSession&nbsp;session)</pre>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The HttpSession to associated with this set of
+                credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteAddress--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteAddress</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteAddress()</pre>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteAddress-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteAddress</h4>
+<pre>public&nbsp;void&nbsp;setRemoteAddress(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</pre>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteAddress</code> - The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHostname()</pre>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be returned
+ instead.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHostname-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setRemoteHostname</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHostname(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</pre>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be specified
+ instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHostname</code> - The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
new file mode 100644
index 0000000..43f8a67
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
@@ -0,0 +1,519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DecoratingDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DecoratingDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":6,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DecoratingDirectory" class="title">Class DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingDirectory</a>&lt;ObjectType&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DecoratingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory. The decorate() and undecorate() functions must be
+ implemented to define how each object is decorated, and how that decoration
+ may be removed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DecoratingDirectory</h4>
+<pre>public&nbsp;DecoratingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The Directory whose objects are being decorated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="decorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="decorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc. If
+ this directory chooses to decorate the object provided, it is up to the
+ implementation of that decorated object to properly pass through
+ operations as appropriate, as well as provide for an eventual
+ undecorate() operation. All objects retrieved from this
+ DecoratingDirectory will first be passed through this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object from a Directory which originates from a different
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An object which may have been decorated by this
+     DecoratingDirectory. If the object was not decorated, the original,
+     unmodified object may be returned instead.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="undecorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="undecorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>undecorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;undecorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object. This function is effectively
+ the exact inverse of the decorate() function. The return value of
+ undecorate(decorate(X)) must be identically X. All objects given to this
+ DecoratingDirectory via add() or update() will first be passed through
+ this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object which was originally returned by a call to this
+     DecoratingDirectory's decorate() function.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original object which was provided to this DecoratingDirectory's
+     decorate() function.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be undecorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
new file mode 100644
index 0000000..f9042fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
@@ -0,0 +1,798 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":42,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnection" class="title">Class DelegatingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnection</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnection</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnection</h4>
+<pre>public&nbsp;DelegatingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnection</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;getDelegateConnection()</pre>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Connection wrapped by this DelegatingConnection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">Connection</a></code></span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first). If connection history tracking is
+ not implemented this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history of this
+     Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this connection, or if permission is
+     denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">Connection</a></code></span></div>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users. ConnectionRecords in this list will be sorted in descending order
+ of end time (active connections are first), and then in descending order
+ of start time (newer connections are first). If connection history
+ tracking has not been implemented, or has been implemented using the
+ deprecated <code>getHistory</code> method, this function should throw
+ GuacamoleUnsupportedExpcetion.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ActivityRecordSet containing ConnectionRecords representing the
+     usage history of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this connection, or if permission is
+     denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..aac8da8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
@@ -0,0 +1,736 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnectionGroup" class="title">Class DelegatingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnectionGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnectionGroup</h4>
+<pre>public&nbsp;DelegatingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnectionGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getDelegateConnectionGroup()</pre>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ConnectionGroup wrapped by this DelegatingConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
new file mode 100644
index 0000000..94e767c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingDirectory" class="title">Class DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingDirectory</h4>
+<pre>public&nbsp;DelegatingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The directory to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateDirectory</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getDelegateDirectory()</pre>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Directory wrapped by this DelegatingDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
new file mode 100644
index 0000000..dfd6b98
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
@@ -0,0 +1,576 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingSharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingSharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingSharingProfile" class="title">Class DelegatingSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingSharingProfile</h4>
+<pre>public&nbsp;DelegatingSharingProfile(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</pre>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfile</code> - The SharingProfile to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateSharingProfile</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;getDelegateSharingProfile()</pre>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The SharingProfile wrapped by this DelegatingSharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
new file mode 100644
index 0000000..b680799
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
@@ -0,0 +1,832 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":42,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUser" class="title">Class DelegatingUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUser</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUser-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUser</h4>
+<pre>public&nbsp;DelegatingUser(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The User to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUser</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;getDelegateUser()</pre>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User wrapped by this DelegatingUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">User</a></code></span></div>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">User</a></code></span></div>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first). If user login history is not implemented
+ this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this user, or if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">User</a></code></span></div>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.
+ ActivityRecords in this list will be sorted in descending order of end
+ time (active sessions are first), and then in descending order of start
+ time (newer sessions are first). If login history tracking is not
+ implemented, or is only implemented using the deprecated <code>getHistory</code>
+ method, this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ActivityRecordSet containing ActivityRecords representing the
+     login history for this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this user, or if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">User</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">User</a></code></span></div>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
new file mode 100644
index 0000000..5dcaca3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
@@ -0,0 +1,876 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserContext" class="title">Class DelegatingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getPrivileged--">getPrivileged</a></span>()</code>
+<div class="block">Returns a user context which provides privileged access.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserContext</h4>
+<pre>public&nbsp;DelegatingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserContext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserContext</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getDelegateUserContext()</pre>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserContext wrapped by this DelegatingUserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">UserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">UserContext</a></code></span></div>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">UserContext</a></code></span></div>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getPrivileged--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPrivileged</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getPrivileged()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">UserContext</a></code></span></div>
+<div class="block">Returns a user context which provides privileged access. Unlike the
+ original user context, which is required to enforce its own permissions
+ and act only within the rights of the associated user, the user context
+ returned by this function MAY ignore the restrictions that otherwise
+ limit the current user's access.
+
+ <p>This function is intended to allow extensions which decorate other
+ extensions to act independently of the restrictions that affect the
+ current user. This function will only be invoked by extensions and
+ WILL NOT be invoked directly by the web application. Implementations of
+ this function MAY still enforce access restrictions, particularly if
+ they do not want to grant full, unrestricted access to other extensions.
+
+ <p>A default implementation which simply returns <code>this</code> is
+ provided for compatibility with Apache Guacamole 1.1.0 and older.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">getPrivileged</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A user context instance which MAY ignore some or all restrictions
+     which otherwise limit the current user's access.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
new file mode 100644
index 0000000..19f3981
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
@@ -0,0 +1,705 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserGroup" class="title">Class DelegatingUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserGroup</h4>
+<pre>public&nbsp;DelegatingUserGroup(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</pre>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userGroup</code> - The UserGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserGroupGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserGroupGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;getDelegateUserGroupGroup()</pre>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserGroup wrapped by this DelegatingUserGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
new file mode 100644
index 0000000..f0273c5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Directory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Directory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Directory" class="title">Interface Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></pre>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal. Objects returned by a Directory
+ are not necessarily backed by the stored objects, thus updating an object
+ always requires calling the update() function.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..681c027
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum GuacamoleProxyConfiguration.EncryptionMethod" class="title">Enum GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</pre>
+<div class="block">All possible types of encryption used by guacd.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#NONE">NONE</a></span></code>
+<div class="block">Unencrypted (plaintext).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#SSL">SSL</a></span></code>
+<div class="block">Encrypted with SSL or TLS.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> NONE</pre>
+<div class="block">Unencrypted (plaintext).</div>
+</li>
+</ul>
+<a name="SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> SSL</pre>
+<div class="block">Encrypted with SSL or TLS.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProxyConfiguration.EncryptionMethod c : GuacamoleProxyConfiguration.EncryptionMethod.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..24fb972
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class GuacamoleProxyConfiguration" class="title">Class GuacamoleProxyConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProxyConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes how the connection to guacd should be
+ established. This includes the hostname and port which guacd is listening on,
+ as well as the type of encryption required, if any.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Michael Jumper</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span></code>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           boolean&nbsp;ssl)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname</a></span>()</code>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort</a></span>()</code>
+<div class="block">Returns the port that guacd is listening on.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>encryptionMethod</code> - The type of encryption required by the instance of guacd running at
+     the given hostname and port.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   boolean&nbsp;ssl)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>ssl</code> - true if guacd requires SSL/TLS encryption, false if communication
+     with guacd should be unencrypted.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getHostname()</pre>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the machine where guacd is running.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPort--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPort</h4>
+<pre>public&nbsp;int&nbsp;getPort()</pre>
+<div class="block">Returns the port that guacd is listening on.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The port that guacd is listening on.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEncryptionMethod--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEncryptionMethod</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;getEncryptionMethod()</pre>
+<div class="block">Returns the type of encryption required by guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of encryption required by guacd.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
new file mode 100644
index 0000000..9993ac0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Identifiable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Identifiable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Identifiable" class="title">Interface Identifiable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Identifiable</span></pre>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
new file mode 100644
index 0000000..1c995df
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permissions (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permissions (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Permissions" class="title">Interface Permissions</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permissions</span></pre>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system. The permissions granted are exposed
+ through subclasses of PermissionSet, and may be mutable depending on the
+ access level of the current user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
new file mode 100644
index 0000000..4e9e39f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
@@ -0,0 +1,350 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RelatedObjectSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RelatedObjectSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface RelatedObjectSet" class="title">Interface RelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">RelatedObjectSet</span></pre>
+<div class="block">An arbitrary set of existing objects sharing some common relation. Unlike a
+ Directory, which provides for maintaining the entire lifecycle of its
+ objects, a RelatedObjectSet only maintains the relation between its
+ containing object and the objects within the set. Adding/removing an object
+ from a RelatedObjectSet affects only the status of the specific relationship
+ represented by the RelatedObjectSet, not the existence of the objects
+ themselves.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects within the set, or
+     if objects cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
new file mode 100644
index 0000000..aaf386e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Shareable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Shareable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Shareable" class="title">Interface Shareable&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of object which dictates the semantics/restrictions of shared
+     objects.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Shareable&lt;T&gt;</span></pre>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials. It is expected, but not required, that these credentials are
+ temporary.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSharingCredentials-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a>&nbsp;getSharingCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object. The semantics and restrictions
+ of the shared object (when accessed using the returned sharing
+ credentials) are defined by the <code>T</code> associated with the given
+ identifier and within the
+ <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> that
+ this Shareable was retrieved from.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of a <code>T</code> within the
+     <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>
+     that this Shareable was retrieved from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A full set of credentials which can be used to authenticate and
+     obtain access to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If credentials could not be generated, or permission to share this
+     object is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
new file mode 100644
index 0000000..7ee27f1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface SharingProfile" class="title">Interface SharingProfile</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SharingProfile</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
new file mode 100644
index 0000000..1df8a4f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnection" class="title">Class TokenInjectingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></pre>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnection</h4>
+<pre>public&nbsp;TokenInjectingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect(). Any additional tokens which have the same
+ name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..3aeff1a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnectionGroup" class="title">Class TokenInjectingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnectionGroup</h4>
+<pre>public&nbsp;TokenInjectingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect(). Any additional tokens which have the
+ same name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
new file mode 100644
index 0000000..00f48e3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
@@ -0,0 +1,454 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingUserContext" class="title">Class TokenInjectingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingUserContext</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></pre>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getPrivileged--">getPrivileged</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included. Any additional tokens which have the same
+ name as existing tokens will override the existing values. If tokens
+ specific to a particular connection or connection group need to be
+ included, getTokens() may be overridden to provide a different set of
+ tokens.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included. Any additional
+ tokens which have the same name as existing tokens will override the
+ existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTokens-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection. If not overridden, this function
+ will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup. If not overridden, this
+ function will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
new file mode 100644
index 0000000..cb42a66
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User.Attribute (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User.Attribute (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class User.Attribute" class="title">Class User.Attribute</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.User.Attribute</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">User.Attribute</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application. Extensions may additionally define their own attributes
+ with completely arbitrary names and semantics, so long as those names do
+ not conflict with the names listed here. All standard attribute names
+ have a "guac-" prefix to avoid such conflicts.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span></code>
+<div class="block">The email address of the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span></code>
+<div class="block">The user's full name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span></code>
+<div class="block">The organization, company, group, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span></code>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FULL_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FULL_NAME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FULL_NAME</pre>
+<div class="block">The user's full name.</div>
+</li>
+</ul>
+<a name="EMAIL_ADDRESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL_ADDRESS</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL_ADDRESS</pre>
+<div class="block">The email address of the user.</div>
+</li>
+</ul>
+<a name="ORGANIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATION</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATION</pre>
+<div class="block">The organization, company, group, etc. that the user belongs to.</div>
+</li>
+</ul>
+<a name="ORGANIZATIONAL_ROLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ORGANIZATIONAL_ROLE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATIONAL_ROLE</pre>
+<div class="block">The role that the user has at the organization, company, group, etc.
+ they belong to.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Attribute--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Attribute</h4>
+<pre>public&nbsp;Attribute()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
new file mode 100644
index 0000000..ffd375d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
@@ -0,0 +1,467 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":50,"i2":6,"i3":6,"i4":6,"i5":18,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface User" class="title">Interface User</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">User</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user of the Guacamole web application.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></span></code>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function is deprecated in favor of <code>getUserHistory</code>, which
+     returns the login history as an ActivityRecordSet which supports
+     various sort and filter functions. While this continues to be defined
+     for API compatibility, new implementation should avoid this function
+     and use getUserHistory(), instead.</span></div>
+</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>default <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+default&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This function is deprecated in favor of <code>getUserHistory</code>, which
+     returns the login history as an ActivityRecordSet which supports
+     various sort and filter functions. While this continues to be defined
+     for API compatibility, new implementation should avoid this function
+     and use getUserHistory(), instead.</span></div>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first). If user login history is not implemented
+ this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this user, or if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>default&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.
+ ActivityRecords in this list will be sorted in descending order of end
+ time (active sessions are first), and then in descending order of start
+ time (newer sessions are first). If login history tracking is not
+ implemented, or is only implemented using the deprecated <code>getHistory</code>
+ method, this method should throw GuacamoleUnsupportedException.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ActivityRecordSet containing ActivityRecords representing the
+     login history for this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this user, or if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
new file mode 100644
index 0000000..df3a305
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
@@ -0,0 +1,731 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":18,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserContext" class="title">Interface UserContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserContext</span></pre>
+<div class="block">The context of an active user. The functions of this class enforce all
+ permissions and act only within the rights of the associated user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>default <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">getPrivileged</a></span>()</code>
+<div class="block">Returns a user context which provides privileged access.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+</li>
+</ul>
+<a name="getPrivileged--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPrivileged</h4>
+<pre>default&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getPrivileged()</pre>
+<div class="block">Returns a user context which provides privileged access. Unlike the
+ original user context, which is required to enforce its own permissions
+ and act only within the rights of the associated user, the user context
+ returned by this function MAY ignore the restrictions that otherwise
+ limit the current user's access.
+
+ <p>This function is intended to allow extensions which decorate other
+ extensions to act independently of the restrictions that affect the
+ current user. This function will only be invoked by extensions and
+ WILL NOT be invoked directly by the web application. Implementations of
+ this function MAY still enforce access restrictions, particularly if
+ they do not want to grant full, unrestricted access to other extensions.
+
+ <p>A default implementation which simply returns <code>this</code> is
+ provided for compatibility with Apache Guacamole 1.1.0 and older.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A user context instance which MAY ignore some or all restrictions
+     which otherwise limit the current user's access.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
new file mode 100644
index 0000000..9741439
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserGroup" class="title">Interface UserGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user group of the Guacamole web application. Each user group may contain
+ any number of Guacamole users and other user groups, and defines the
+ permissions implicitly granted to its members.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
new file mode 100644
index 0000000..f2cedf7
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractActiveConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractActiveConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..e6a35ab
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractAuthenticatedUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..4fb0bee
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
new file mode 100644
index 0000000..3d07b54
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
new file mode 100644
index 0000000..cb3df6d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
new file mode 100644
index 0000000..9bdfceb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractIdentifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
new file mode 100644
index 0000000..97b3dfb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
new file mode 100644
index 0000000..5019663
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
new file mode 100644
index 0000000..5acc0f3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
new file mode 100644
index 0000000..18b12c6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
new file mode 100644
index 0000000..34263e5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActiveConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
new file mode 100644
index 0000000..961d6ff
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span></code>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function is deprecated in favor of <code>getUserHistory</code>, which
+     returns the login history as an ActivityRecordSet which supports
+     various sort and filter functions. While this continues to be defined
+     for API compatibility, new implementation should avoid this function
+     and use getUserHistory(), instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..90c74aa
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
new file mode 100644
index 0000000..2465bc4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ActivityRecords representing
+ the login history for this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
new file mode 100644
index 0000000..d316141
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Attributes" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Attributes</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
new file mode 100644
index 0000000..13a8db3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
@@ -0,0 +1,462 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
new file mode 100644
index 0000000..86af03a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span></code>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
new file mode 100644
index 0000000..af25594
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connectable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connectable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
new file mode 100644
index 0000000..ca475dd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
new file mode 100644
index 0000000..7ae8422
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ConnectionGroup.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
new file mode 100644
index 0000000..ee4a67a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
new file mode 100644
index 0000000..0925d86
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <code>getConnectionHistory</code>, which returns the connection history
+     as an ActivityRecordSet that can be easily sorted and filtered.
+     While the getHistory() method is provided for API compatibility,
+     new implementations should avoid use of this method and, instead,
+     implement the getConnectionHistory() method.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
new file mode 100644
index 0000000..9776d25
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
new file mode 100644
index 0000000..bc74cf9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.Credentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.Credentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
new file mode 100644
index 0000000..acc9677
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DecoratingDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DecoratingDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
new file mode 100644
index 0000000..b111674
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..4d3e0ae
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
new file mode 100644
index 0000000..49eb229
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
new file mode 100644
index 0000000..92ce0a7
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
new file mode 100644
index 0000000..4b57333
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
new file mode 100644
index 0000000..0e84364
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
new file mode 100644
index 0000000..7fb1718
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
new file mode 100644
index 0000000..e4b3c43
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Directory" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Directory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..ba969fe
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..281fcaa
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a> in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
new file mode 100644
index 0000000..ebecfef
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Identifiable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Identifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span></code>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span></code>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
new file mode 100644
index 0000000..7cb8b63
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Permissions" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Permissions</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
new file mode 100644
index 0000000..92a5d9c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.RelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> declared as <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RelatedObjectSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></span></code>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
new file mode 100644
index 0000000..62bc11d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Shareable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Shareable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
new file mode 100644
index 0000000..73074ed
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.SharingProfile</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingSharingProfile.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
new file mode 100644
index 0000000..cd0382d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..d297ba5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
new file mode 100644
index 0000000..46fa7fe
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
new file mode 100644
index 0000000..95eceb6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.User.Attribute" class="title">Uses of Class<br>org.apache.guacamole.net.auth.User.Attribute</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.User.Attribute</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
new file mode 100644
index 0000000..5b26a53
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.User" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.User</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
new file mode 100644
index 0000000..4d0bcff
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserContext" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span></code>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span></code>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>default <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getPrivileged--">getPrivileged</a></span>()</code>
+<div class="block">Returns a user context which provides privileged access.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getPrivileged--">getPrivileged</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getPrivileged--">getPrivileged</a></span>()</code>
+<div class="block">Returns a user context which provides privileged access.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
new file mode 100644
index 0000000..35a90a1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
new file mode 100644
index 0000000..031d50d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialsInfo (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialsInfo (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class CredentialsInfo" class="title">Class CredentialsInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.CredentialsInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">CredentialsInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes a set of valid credentials.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> EMPTY</pre>
+<div class="block">CredentialsInfo object which describes empty credentials. No fields are
+ required.</div>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> USERNAME</pre>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> PASSWORD</pre>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</li>
+</ul>
+<a name="USERNAME_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>USERNAME_PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> USERNAME_PASSWORD</pre>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CredentialsInfo-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CredentialsInfo</h4>
+<pre>public&nbsp;CredentialsInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>All fields required for valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..477d971
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleCredentialsException" class="title">Class GuacamoleCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a>, <a href="../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleCredentialsException</span>
+extends org.apache.guacamole.GuacamoleUnauthorizedException</pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials. Additional information
+ describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentialsInfo--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentialsInfo</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;getCredentialsInfo()</pre>
+<div class="block">Returns information describing the form of valid credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..be03ef9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,392 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInsufficientCredentialsException" class="title">Class GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInsufficientCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.
+ The validity or invalidity of the given credentials is not specified, and
+ more information is needed before a decision can be made. Additional
+ information describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..d654619
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInvalidCredentialsException" class="title">Class GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInvalidCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid. Additional information describing
+ the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
new file mode 100644
index 0000000..31421fb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserCredentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserCredentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class UserCredentials" class="title">Class UserCredentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.CredentialsInfo</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.UserCredentials</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UserCredentials</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></pre>
+<div class="block">A fully-valid set of credentials and associated values. Each instance of
+ this object should describe a full set of parameter name/value pairs which
+ can be used to authenticate successfully, even if that success depends on
+ factors not described by this object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the field having the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UserCredentials-java.util.Collection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo. The value required for each field in the
+ CredentialsInfo is defined in the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValues--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getValues()</pre>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object. Modifications to the returned map will directly affect the
+ associated name/value pairs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of field names to their corresponding values which backs this
+     UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre>public&nbsp;void&nbsp;setValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.
+ All field name/value pairs described by the original map are replaced by
+ the name/value pairs in the given map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - The map of field names to their corresponding values which should be
+     used to back this UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the field having the given name, or null if no value is
+     defined for that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the given field, or null if no value is defined for
+     that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the field having the given name. Any existing value
+ for that field is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the field having the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-org.apache.guacamole.form.Field-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the given field. Any existing value for that field is
+ replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the given field.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value. If the field value was not defined, this
+ function has no effect, and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value. If the field value was not defined, this function has no effect,
+ and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
new file mode 100644
index 0000000..cd69ba8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.CredentialsInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html#TranslatableGuacamoleCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                     <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html#TranslatableGuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                     <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                     <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInsufficientCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html#TranslatableGuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.language.TranslatableMessage-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">TranslatableGuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                <a href="../../../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;translatableMessage,
+                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new TranslatableGuacamoleInvalidCredentialsException with
+ the given message, cause, and associated credential information.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span></code>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..4b24cdc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
@@ -0,0 +1,228 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleCredentialsException</code></a> whose associated message is
+ translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..9a8dc38
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInsufficientCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..d801310
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">TranslatableGuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><code>GuacamoleInvalidCredentialsException</code></a> whose associated message
+ is translatable and can be passed through an arbitrary translation service,
+ producing a human-readable message in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
new file mode 100644
index 0000000..e2b8b11
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.UserCredentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Shareable.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
new file mode 100644
index 0000000..4627f7a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.credentials</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
new file mode 100644
index 0000000..5fa6b56
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></td>
+<td class="colLast">
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></td>
+<td class="colLast">
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
new file mode 100644
index 0000000..5d354b3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.credentials</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
new file mode 100644
index 0000000..6091495
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.credentials" class="title">Uses of Package<br>org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html#org.apache.guacamole.language">CredentialsInfo</a>
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html#org.apache.guacamole.language">GuacamoleCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html#org.apache.guacamole.language">GuacamoleInsufficientCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html#org.apache.guacamole.language">GuacamoleInvalidCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html#org.apache.guacamole.net.auth">UserCredentials</a>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html#org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html#org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
new file mode 100644
index 0000000..640817b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/auth/package-summary.html" target="classFrame">org.apache.guacamole.net.auth</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
new file mode 100644
index 0000000..42b8b19
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth</h1>
+<div class="docSummary">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></td>
+<td class="colLast">
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></td>
+<td class="colLast">
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></td>
+<td class="colLast">
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></td>
+<td class="colLast">
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></td>
+<td class="colLast">
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></td>
+<td class="colLast">
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></td>
+<td class="colLast">
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></td>
+<td class="colLast">
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></td>
+<td class="colLast">
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></td>
+<td class="colLast">
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></td>
+<td class="colLast">
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></td>
+<td class="colLast">
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></td>
+<td class="colLast">
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></td>
+<td class="colLast">
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></td>
+<td class="colLast">
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></td>
+<td class="colLast">
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></td>
+<td class="colLast">
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></td>
+<td class="colLast">
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></td>
+<td class="colLast">
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></td>
+<td class="colLast">
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></td>
+<td class="colLast">
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth Description">Package org.apache.guacamole.net.auth Description</h2>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
new file mode 100644
index 0000000..b33eda5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
new file mode 100644
index 0000000..20ebcba
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
@@ -0,0 +1,587 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth" class="title">Uses of Package<br>org.apache.guacamole.net.auth</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html#org.apache.guacamole.environment">GuacamoleProxyConfiguration</a>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActiveConnection.html#org.apache.guacamole.net.auth">ActiveConnection</a>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html#org.apache.guacamole.net.auth">ConnectionGroup.Type</a>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnection.html#org.apache.guacamole.net.auth">DelegatingConnection</a>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html#org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html#org.apache.guacamole.net.auth">DelegatingDirectory</a>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html#org.apache.guacamole.net.auth">DelegatingUserContext</a>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html#org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Shareable.html#org.apache.guacamole.net.auth">Shareable</a>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/SharingProfile.html#org.apache.guacamole.net.auth">SharingProfile</a>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AbstractAuthenticationProvider</a>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnection.html#org.apache.guacamole.net.auth.simple">AbstractConnection</a>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html#org.apache.guacamole.net.auth.simple">AbstractConnectionGroup</a>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth.simple">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUser.html#org.apache.guacamole.net.auth.simple">AbstractUser</a>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserContext.html#org.apache.guacamole.net.auth.simple">AbstractUserContext</a>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html#org.apache.guacamole.net.auth.simple">AbstractUserGroup</a>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth.simple">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth.simple">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth.simple">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth.simple">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth.simple">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth.simple">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth.simple">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html#org.apache.guacamole.net.auth.simple">ConnectionRecordSet</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth.simple">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth.simple">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth.simple">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth.simple">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth.simple">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth.simple">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth.simple">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth.simple">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.event">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.event">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.token">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.token">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
new file mode 100644
index 0000000..a2db949
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum ObjectPermission.Type" class="title">Enum ObjectPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ObjectPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of object-level permissions. Each permission type is
+ related to a specific class of object-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Change who has access to an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#DELETE">DELETE</a></span></code>
+<div class="block">Delete an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#READ">READ</a></span></code>
+<div class="block">Read data within an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#UPDATE">UPDATE</a></span></code>
+<div class="block">Update data within an object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="READ">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>READ</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> READ</pre>
+<div class="block">Read data within an object.</div>
+</li>
+</ul>
+<a name="UPDATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPDATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> UPDATE</pre>
+<div class="block">Update data within an object.</div>
+</li>
+</ul>
+<a name="DELETE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> DELETE</pre>
+<div class="block">Delete an object.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> ADMINISTER</pre>
+<div class="block">Change who has access to an object.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ObjectPermission.Type c : ObjectPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
new file mode 100644
index 0000000..e7a9cb8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class ObjectPermission" class="title">Class ObjectPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ObjectPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span></code>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ObjectPermission</h4>
+<pre>public&nbsp;ObjectPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.
+ The identifier must be the unique identifier assigned to the object
+ associated with this permission by the AuthenticationProvider in use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation affected by this permission.</dd>
+<dd><code>identifier</code> - The identifier of the object associated with the operation affected
+     by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjectIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getObjectIdentifier()</pre>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the specific object affected by this
+         permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
new file mode 100644
index 0000000..ca5f605
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface ObjectPermissionSet" class="title">Interface ObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ObjectPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
new file mode 100644
index 0000000..53ac823
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface Permission" class="title">Interface Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The enumeration of all available operation types that this permission
+     can affect.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</span></pre>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
new file mode 100644
index 0000000..dfbc398
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface PermissionSet" class="title">Interface PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>PermissionType</code> - The type of permission stored within this PermissionSet.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></pre>
+<div class="block">An arbitrary set of permissions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;getPermissions()
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
new file mode 100644
index 0000000..00b14cd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum SystemPermission.Type" class="title">Enum SystemPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">SystemPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of system-level permissions. Each permission type is
+ related to a specific class of system-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION">CREATE_CONNECTION</a></span></code>
+<div class="block">Create connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION_GROUP">CREATE_CONNECTION_GROUP</a></span></code>
+<div class="block">Create connection groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_SHARING_PROFILE">CREATE_SHARING_PROFILE</a></span></code>
+<div class="block">Create sharing profiles.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER">CREATE_USER</a></span></code>
+<div class="block">Create users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER_GROUP">CREATE_USER_GROUP</a></span></code>
+<div class="block">Create user groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="CREATE_USER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER</pre>
+<div class="block">Create users.</div>
+</li>
+</ul>
+<a name="CREATE_USER_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER_GROUP</pre>
+<div class="block">Create user groups.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION</pre>
+<div class="block">Create connections.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION_GROUP</pre>
+<div class="block">Create connection groups.</div>
+</li>
+</ul>
+<a name="CREATE_SHARING_PROFILE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_SHARING_PROFILE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_SHARING_PROFILE</pre>
+<div class="block">Create sharing profiles.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> ADMINISTER</pre>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (SystemPermission.Type c : SystemPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
new file mode 100644
index 0000000..6bc362d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class SystemPermission" class="title">Class SystemPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SystemPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span></code>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SystemPermission</h4>
+<pre>public&nbsp;SystemPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</pre>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation controlled by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
new file mode 100644
index 0000000..abfb1bb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface SystemPermissionSet" class="title">Interface SystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SystemPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
new file mode 100644
index 0000000..8238f5f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
new file mode 100644
index 0000000..3e8d6eb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
new file mode 100644
index 0000000..b5facc0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
@@ -0,0 +1,412 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.ObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
new file mode 100644
index 0000000..12943d0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.Permission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></code>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span></code>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span></code>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
new file mode 100644
index 0000000..02a8cfa
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.PermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span></code>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span></code>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
new file mode 100644
index 0000000..ee190d7
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
new file mode 100644
index 0000000..3e2b3fd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
new file mode 100644
index 0000000..36753ec
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.SystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
new file mode 100644
index 0000000..7849e12
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.permission</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
new file mode 100644
index 0000000..28c4426
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.permission</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</td>
+<td class="colLast">
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</td>
+<td class="colLast">
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.permission Description">Package org.apache.guacamole.net.auth.permission Description</h2>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
new file mode 100644
index 0000000..4c7d720
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.permission</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
new file mode 100644
index 0000000..f407363
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.permission" class="title">Uses of Package<br>org.apache.guacamole.net.auth.permission</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.permission">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/Permission.html#org.apache.guacamole.net.auth.permission">Permission</a>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.permission">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.permission">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.simple">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.simple">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.simple">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.simple">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.simple">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.simple">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.simple">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..5df069c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
@@ -0,0 +1,457 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleActivityRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleActivityRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleActivityRecordSet" class="title">Class SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet&lt;RecordType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</pre>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet</a></span>()</code>
+<div class="block">Create a new SimpleActivityRecordSet that contains an empty set of
+ records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet-java.util.Collection-">SimpleActivityRecordSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;records)</code>
+<div class="block">Create a new SimpleActivityRecordSet that contains the provided records
+ which will back this record set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleActivityRecordSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleActivityRecordSet</h4>
+<pre>public&nbsp;SimpleActivityRecordSet()</pre>
+<div class="block">Create a new SimpleActivityRecordSet that contains an empty set of
+ records.</div>
+</li>
+</ul>
+<a name="SimpleActivityRecordSet-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleActivityRecordSet</h4>
+<pre>public&nbsp;SimpleActivityRecordSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;records)</pre>
+<div class="block">Create a new SimpleActivityRecordSet that contains the provided records
+ which will back this record set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>records</code> - The records that this SimpleActivityRecordSet should contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                          boolean&nbsp;desc)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..a9f55e8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleAuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleAuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleAuthenticationProvider" class="title">Class SimpleAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractAuthenticationProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">SimpleAuthenticationProvider</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></pre>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object. This is a simple AuthenticationProvider
+ implementation intended to be easily extended. It is useful for simple
+ authentication situations where access to web-based administration and
+ complex users and permissions are not required.
+
+ The interface provided by SimpleAuthenticationProvider is similar to that of
+ the AuthenticationProvider interface of older Guacamole releases.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractAuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleAuthenticationProvider</h4>
+<pre>public&nbsp;SimpleAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthorizedConfigurations</h4>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;getAuthorizedConfigurations(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                                                                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials. The keys of this Map
+ are Strings which uniquely identify each configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use to retrieve authorized
+                    configurations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Map of all configurations authorized by the given credentials,
+         or null if the credentials given are not authorized.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            configurations.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
new file mode 100644
index 0000000..79c8048
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
@@ -0,0 +1,684 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnection" class="title">Class SimpleConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnection</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></pre>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.
+ Parameter tokens provided to connect() are automatically applied if
+ explicitly requested. Tracking of active connections and connection history
+ is not provided.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection</a></span>(boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection()</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted.</div>
+</li>
+</ul>
+<a name="SimpleConnection-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted unless explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens within the
+ GuacamoleConfiguration will not be interpreted unless explicitly
+ requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                        boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens will be interpreted if
+ explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFullConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFullConfiguration</h4>
+<pre>protected&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getFullConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection. Unlike <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--"><code>AbstractConnection.getConfiguration()</code></a>, which is allowed to omit
+ or tokenize information, the GuacamoleConfiguration returned by this
+ function will always be the full configuration to be used to establish
+ the connection, as provided when this SimpleConnection was created or via
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The full GuacamoleConfiguration describing how to connect to this
+     connection, without any information omitted or tokenized.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.
+
+ <p>This implementation will connect using the GuacamoleConfiguration
+ returned by <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--"><code>getFullConfiguration()</code></a>, honoring the
+ "guacd-hostname", "guacd-port", and "guacd-ssl" properties set within
+ guacamole.properties. Parameter tokens will be taken into account if
+ the SimpleConnection was explicitly requested to do so when created.
+
+ <p>Implementations requiring more complex behavior should consider using
+ the <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><code>AbstractConnection</code></a> base class or implementing
+ <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><code>Connection</code></a> directly.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getConnectionHistory--">Connection</a></code></span></div>
+<div class="block">Returns an ActivityRecordSet containing ConnectionRecords that
+ represent the usage history of this Connection, including any active
+ users. ConnectionRecords in this list will be sorted in descending order
+ of end time (active connections are first), and then in descending order
+ of start time (newer connections are first). If connection history
+ tracking has not been implemented, or has been implemented using the
+ deprecated <code>getHistory</code> method, this function should throw
+ GuacamoleUnsupportedExpcetion.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ActivityRecordSet containing ConnectionRecords representing the
+     usage history of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If history tracking is not implemented, if an error occurs while
+     reading the history of this connection, or if permission is
+     denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..18c7c19
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionDirectory" class="title">Class SimpleConnectionDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ GuacamoleConfigurations which provides access to a pre-defined Map of
+ GuacamoleConfigurations.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionDirectory</h4>
+<pre>public&nbsp;SimpleConnectionDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connections</code> - A Collection of all connections that should be present in this
+     connection directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;putConnection(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.
+ Returns the previous connection for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The connection to add or update the Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the connection identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnection-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;removeConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the Connection to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
new file mode 100644
index 0000000..7dba737
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroup" class="title">Class SimpleConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnectionGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></pre>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with. Load balancing across this connection group is not allowed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroup</h4>
+<pre>public&nbsp;SimpleConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection group.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection group.</dd>
+<dd><code>connectionIdentifiers</code> - The connection identifiers to expose when requested.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The connection group identifiers to expose when requested.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..69be7a1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroupDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroupDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroupDirectory" class="title">Class SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionGroupDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ ConnectionGroup which provides which provides access to a pre-defined
+ Collection of ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroupDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroupDirectory</h4>
+<pre>public&nbsp;SimpleConnectionGroupDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>groups</code> - A Collection of all groups that should be present in this
+               connection group directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;putConnectionGroup(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.
+ Returns the previous connection group for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The connection group to add or update the
+                        Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the connection group
+         identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnectionGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;removeConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the ConnectionGroup to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..8ac3b66
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
@@ -0,0 +1,443 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42,"i2":42,"i3":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionRecordSet" class="title">Class SimpleConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionRecordSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></pre>
+<div class="block">An immutable and empty ConnectionRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionRecordSet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionRecordSet</h4>
+<pre>public&nbsp;SimpleConnectionRecordSet()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;asCollection()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;limit(int&nbsp;limit)
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                boolean&nbsp;desc)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
new file mode 100644
index 0000000..f6a6587
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
@@ -0,0 +1,616 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleDirectory" class="title">Class SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this SimpleDirectory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects. Any changes to the Map
+ will affect the available contents of this SimpleDirectory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory</a></span>()</code>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory()</pre>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map. The given Map will be used to back all
+ operations on the SimpleDirectory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable:A-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects. Note that a new Map will be created to store the given objects.
+ If the objects are already available in Map form, it is more efficient
+ to use the <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection. Note that a new Map will be
+ created to store the given objects. If the objects are already available
+ in Map form, it is more efficient to use the
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - A Collection of all objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Sets the Map which backs this SimpleDirectory. Future function calls
+ which retrieve objects from this SimpleDirectory will use the provided
+ Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getObjects()</pre>
+<div class="block">Returns the Map which currently backs this SimpleDirectory. Changes to
+ this Map will affect future function calls that retrieve objects from
+ this SimpleDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Map of objects which currently backs this SimpleDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..b857f55
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
@@ -0,0 +1,622 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleObjectPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleObjectPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleObjectPermissionSet" class="title">Class SimpleObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleObjectPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></pre>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.ObjectPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleObjectPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleObjectPermissionSet. If you are not extending
+ SimpleObjectPermissionSet and only need an immutable, empty
+ ObjectPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET"><code>ObjectPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should be associated permissions having each
+     of the given permission types.</dd>
+<dd><code>types</code> - The types of permissions which should be granted for each of the
+     given identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should each be associated with READ
+     permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet. Future function
+ calls on this SimpleObjectPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissionTypes</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..7c42a16
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleRelatedObjectSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleRelatedObjectSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleRelatedObjectSet" class="title">Class SimpleRelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleRelatedObjectSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></pre>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.RelatedObjectSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleRelatedObjectSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet()</pre>
+<div class="block">Creates a new empty SimpleRelatedObjectSet. If you are not extending
+ SimpleRelatedObjectSet and only need an immutable, empty
+ RelatedObjectSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET"><code>RelatedObjectSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleRelatedObjectSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set. The given Set backs the contents
+ of the new SimpleRelatedObjectSet. While the SimpleRelatedObjectSet is
+ read-only, any changes to the underlying Set will be reflected in the
+ SimpleRelatedObjectSet.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within the new SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet. Future function calls on this
+ SimpleRelatedObjectSet will instead use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within this SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">RelatedObjectSet</a></code></span></div>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>public&nbsp;void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>public&nbsp;void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..5cadd69
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
@@ -0,0 +1,514 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleSystemPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleSystemPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleSystemPermissionSet" class="title">Class SimpleSystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleSystemPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></pre>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.SystemPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleSystemPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleSystemPermissionSet. If you are not extending
+ SimpleSystemPermissionSet and only need an immutable, empty
+ SystemPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET"><code>SystemPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleSystemPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet. Future function
+ calls on this SimpleSystemPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
new file mode 100644
index 0000000..ccd80fe
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
@@ -0,0 +1,535 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUser" class="title">Class SimpleUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUser</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUser</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></pre>
+<div class="block">A read-only User implementation which has no permissions. Implementations
+ that need to define permissions should extend this class and override the
+ associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUser">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserHistory--">getUserHistory</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser()</pre>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the connections and connection groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the users, connections, and groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>userIdentifiers</code> - The identifiers of all users this user has READ access to.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
new file mode 100644
index 0000000..4026492
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserContext" class="title">Class SimpleUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserContext</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></pre>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations. Access to
+ querying or modifying either users or permissions is denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getPrivileged--">getPrivileged</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map. The username is set to the
+ ANONYMOUS_IDENTIFIER defined by AuthenticatedUser, effectively declaring
+ the current user as anonymous. Parameter tokens within the given
+ GuacamoleConfigurations will not be interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with this
+     UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will not be
+ interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                         boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will be
+ interpreted if explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfigurations
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">AbstractUserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">AbstractUserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
new file mode 100644
index 0000000..7d648f1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserDirectory" class="title">Class SimpleUserDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleUserDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of Users which
+ provides access to a single pre-defined User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserDirectory-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserDirectory</h4>
+<pre>public&nbsp;SimpleUserDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The user to provide access to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
new file mode 100644
index 0000000..20564eb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserGroup" class="title">Class SimpleUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></pre>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions. Implementations that need to define members or permissions
+ should extend this class and override the associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup()</pre>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</li>
+</ul>
+<a name="SimpleUserGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign to this SimpleUserGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..3fabe44
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..2f6e6c2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
new file mode 100644
index 0000000..200083d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..39ed87e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
new file mode 100644
index 0000000..e3f4508
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..28c8058
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..b3c4966
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
new file mode 100644
index 0000000..52a484c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..6112c45
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..09915e6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..537a8dc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
new file mode 100644
index 0000000..d7631a4
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
new file mode 100644
index 0000000..cf32e6d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
new file mode 100644
index 0000000..4b40294
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
new file mode 100644
index 0000000..54c23a5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
new file mode 100644
index 0000000..4139ae6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.simple</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
new file mode 100644
index 0000000..84458de
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.simple</h1>
+<div class="docSummary">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></td>
+<td class="colLast">
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></td>
+<td class="colLast">
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></td>
+<td class="colLast">
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></td>
+<td class="colLast">
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.simple Description">Package org.apache.guacamole.net.auth.simple Description</h2>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
new file mode 100644
index 0000000..02e81ba
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.simple</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
new file mode 100644
index 0000000..1260424
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.simple" class="title">Uses of Package<br>org.apache.guacamole.net.auth.simple</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html#org.apache.guacamole.net.auth.simple">SimpleDirectory</a>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..014b7e6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationFailureEvent" class="title">Class AuthenticationFailureEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationFailureEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationFailureEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated. The credentials that failed to be authenticated are included
+ within this event, and can be retrieved using getCredentials().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationFailureEvent</h4>
+<pre>public&nbsp;AuthenticationFailureEvent(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials which failed authentication.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..bd25a81
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationSuccessEvent" class="title">Class AuthenticationSuccessEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationSuccessEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationSuccessEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication. The credentials that passed authentication are included
+ within this event, and can be retrieved using getCredentials().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, successful authentication
+ is effectively <em>vetoed</em> and will be subsequently processed as though the
+ authentication failed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationSuccessEvent</h4>
+<pre>public&nbsp;AuthenticationSuccessEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</pre>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser identifying the user that successfully
+     authenticated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
new file mode 100644
index 0000000..454aa72
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface CredentialEvent" class="title">Interface CredentialEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">CredentialEvent</span></pre>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
new file mode 100644
index 0000000..5b65776
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelCloseEvent" class="title">Class TunnelCloseEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelCloseEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelCloseEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being closed. The tunnel
+ being closed can be accessed through getTunnel(), and the UserContext
+ associated with the request which is closing the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the request to close
+ the tunnel is effectively <em>vetoed</em> and will remain connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelCloseEvent</h4>
+<pre>public&nbsp;TunnelCloseEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                        org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is closing the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that closed the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
new file mode 100644
index 0000000..9fa6ef9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelConnectEvent" class="title">Class TunnelConnectEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelConnectEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelConnectEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being connected. The tunnel
+ being connected can be accessed through getTunnel(), and the UserContext
+ associated with the request which is connecting the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the tunnel connection
+ is effectively <em>vetoed</em> and will be subsequently closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelConnectEvent</h4>
+<pre>public&nbsp;TunnelConnectEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                          org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is connecting the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that connected the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being connected.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
new file mode 100644
index 0000000..64af656
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface TunnelEvent" class="title">Interface TunnelEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TunnelEvent</span></pre>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
new file mode 100644
index 0000000..9e8c965
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface UserEvent" class="title">Interface UserEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserEvent</span></pre>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..13d85de
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationFailureEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..7839218
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationSuccessEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
new file mode 100644
index 0000000..66be367
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.CredentialEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
new file mode 100644
index 0000000..2c3ef66
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelCloseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
new file mode 100644
index 0000000..35f7510
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelConnectEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
new file mode 100644
index 0000000..ac3b7f5
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.TunnelEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
new file mode 100644
index 0000000..8b3176b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.UserEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.UserEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
new file mode 100644
index 0000000..827651d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationFailureListener" class="title">Interface AuthenticationFailureListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationFailureListener</span></pre>
+<div class="block">A listener whose authenticationFailed() hook will fire immediately
+ after a user's authentication attempt fails. Note that this hook cannot
+ be used to cancel the authentication failure.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationFailed</h4>
+<pre>void&nbsp;authenticationFailed(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication failure event.
+      Note that throwing an exception will NOT cause the authentication
+      failure to be canceled (which makes no sense), but it will prevent
+      subsequent listeners from receiving the notification.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..994e96f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationSuccessListener" class="title">Interface AuthenticationSuccessListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationSuccessListener</span></pre>
+<div class="block">A listener whose hooks will fire immediately before and after a user's
+ authentication attempt succeeds. If a user successfully authenticates,
+ the authenticationSucceeded() hook has the opportunity to cancel the
+ authentication and force it to fail.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationSucceeded</h4>
+<pre>boolean&nbsp;authenticationSucceeded(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds. The return value of this hook dictates whether the
+ successful authentication attempt is canceled.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the successful authentication attempt should be
+      allowed, or false if the attempt should be denied, causing
+      the attempt to effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication success event.
+      Throwing an exception will also cancel the authentication success.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
new file mode 100644
index 0000000..1d194d9
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Listener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Listener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface Listener" class="title">Interface Listener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Listener</span></pre>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc. Listeners are registered
+ through the extension manifest mechanism. When an event occurs, listeners
+ are notified in the order in which they are declared in the manifest and
+ continues until either all listeners have been notified or with the first
+ listener that throws a GuacamoleException or other runtime exception.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)</code>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="handleEvent-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleEvent</h4>
+<pre>void&nbsp;handleEvent(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)
+          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Notifies the recipient that an event has occurred.
+ <p>
+ Throwing an exception from an event listener can act to veto an action in
+ progress for some event types. See the Javadoc for specific event types for
+ details.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - An object that describes the event that has occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the listener wishes to stop notification of the event to subsequent
+     listeners. For some event types, this acts to veto an action in progress;
+     e.g. treating a successful authentication as though it failed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
new file mode 100644
index 0000000..0bdddfa
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelCloseListener" class="title">Interface TunnelCloseListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelCloseListener</span></pre>
+<div class="block">A listener whose tunnelClosed() hook will fire immediately before an
+ existing tunnel is closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelClosed</h4>
+<pre>boolean&nbsp;tunnelClosed(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.
+ The return value of this hook dictates whether the tunnel is allowed to
+ be closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelCloseEvent describing the tunnel being closed and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be closed, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel close event. Throwing
+      an exception will also stop the tunnel from being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
new file mode 100644
index 0000000..5abd991
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelConnectListener" class="title">Interface TunnelConnectListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelConnectListener</span></pre>
+<div class="block">A listener whose tunnelConnected() hook will fire immediately after a new
+ tunnel is connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelConnected</h4>
+<pre>boolean&nbsp;tunnelConnected(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.
+ The return value of this hook dictates whether the tunnel is made visible
+ to the session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelConnectEvent describing the tunnel being connected and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be connected, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel connect event. Throwing
+       an exception will also stop the tunnel from being made visible to the
+       session.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
new file mode 100644
index 0000000..2901e4c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationFailureListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationFailureListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..51ef679
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
new file mode 100644
index 0000000..c259e0a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.Listener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.Listener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.Listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
new file mode 100644
index 0000000..4a2714a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelCloseListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelCloseListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
new file mode 100644
index 0000000..0be41e3
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelConnectListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelConnectListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
new file mode 100644
index 0000000..c817f67
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html" target="classFrame">org.apache.guacamole.net.event.listener</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
new file mode 100644
index 0000000..02dbc42
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event.listener</h1>
+<div class="docSummary">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></td>
+<td class="colLast">
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event.listener Description">Package org.apache.guacamole.net.event.listener Description</h2>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application. These event
+ hooks can be used to take action upon occurrence of an event and,
+ in some cases, prevent the web application from allowing the
+ event to continue for the user that triggered it.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
new file mode 100644
index 0000000..94a3d9d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event.listener</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
new file mode 100644
index 0000000..b8a3500
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event.listener" class="title">Uses of Package<br>org.apache.guacamole.net.event.listener</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.net.event.listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
new file mode 100644
index 0000000..2ecec80
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/event/package-summary.html" target="classFrame">org.apache.guacamole.net.event</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
new file mode 100644
index 0000000..d21be09
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event</h1>
+<div class="docSummary">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event Description">Package org.apache.guacamole.net.event Description</h2>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.
+ These event classes are most useful when used with hooks implemented
+ using listener classes.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html"><code>org.apache.guacamole.net.event.listener</code></a></dd>
+</dl>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
new file mode 100644
index 0000000..86df52b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
new file mode 100644
index 0000000..decd745
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event" class="title">Uses of Package<br>org.apache.guacamole.net.event</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/CredentialEvent.html#org.apache.guacamole.net.event">CredentialEvent</a>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelEvent.html#org.apache.guacamole.net.event">TunnelEvent</a>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/UserEvent.html#org.apache.guacamole.net.event">UserEvent</a>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html#org.apache.guacamole.net.event.listener">AuthenticationFailureEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html#org.apache.guacamole.net.event.listener">AuthenticationSuccessEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html#org.apache.guacamole.net.event.listener">TunnelCloseEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html#org.apache.guacamole.net.event.listener">TunnelConnectEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..4110127
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class BooleanGuacamoleProperty" class="title">Class BooleanGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.BooleanGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">BooleanGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an boolean. Legal true values are "true",
+ or "false". Case does not matter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanGuacamoleProperty</h4>
+<pre>public&nbsp;BooleanGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html
new file mode 100644
index 0000000..7b3fb28
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EnumGuacamoleProperty.PropertyValue (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumGuacamoleProperty.PropertyValue (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumGuacamoleProperty.PropertyValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Annotation Type EnumGuacamoleProperty.PropertyValue" class="title">Annotation Type EnumGuacamoleProperty.PropertyValue</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>)
+ <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>)
+public static @interface <span class="memberNameLabel">EnumGuacamoleProperty.PropertyValue</span></pre>
+<div class="block">Defines the string value which should be accepted and parsed into the
+ annotated enum constant.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.required.element.summary">
+<!--   -->
+</a>
+<h3>Required Element Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Required Element Summary table, listing required elements, and an explanation">
+<caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Required Element and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html#value--">value</a></span></code>
+<div class="block">Returns the String value that should produce the annotated enum
+ constant when parsed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="annotation.type.element.detail">
+<!--   -->
+</a>
+<h3>Element Detail</h3>
+<a name="value--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>value</h4>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value</pre>
+<div class="block">Returns the String value that should produce the annotated enum
+ constant when parsed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The String value that should produce the annotated enum constant
+     when parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumGuacamoleProperty.PropertyValue.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.required.element.summary">Required</a>&nbsp;|&nbsp;</li>
+<li>Optional</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#annotation.type.element.detail">Element</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.html
new file mode 100644
index 0000000..3912401
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/EnumGuacamoleProperty.html
@@ -0,0 +1,414 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EnumGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/EnumGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class EnumGuacamoleProperty" class="title">Class EnumGuacamoleProperty&lt;T extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;T&gt;&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.EnumGuacamoleProperty&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The enum which defines the possible values of this property.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;T&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">EnumGuacamoleProperty&lt;T extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;T&gt;&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;T&gt;</pre>
+<div class="block">A GuacamoleProperty whose possible values are defined by an enum. Possible
+ values may be defined either through providing an explicit mapping or
+ through annotating the enum constant definitions with the
+ <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><code>EnumGuacamoleProperty.PropertyValue</code></a> annotation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties">EnumGuacamoleProperty.PropertyValue</a></span></code>
+<div class="block">Defines the string value which should be accepted and parsed into the
+ annotated enum constant.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.lang.Class-">EnumGuacamoleProperty</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&nbsp;enumClass)</code>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the
+ <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><code>EnumGuacamoleProperty.PropertyValue</code></a> annotations associated with those constants.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.util.Map-">EnumGuacamoleProperty</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&nbsp;valueMapping)</code>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html#EnumGuacamoleProperty-java.lang.String-T-java.lang.Object...-">EnumGuacamoleProperty</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                     <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&nbsp;value,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;additional)</code>
+<div class="block">Creates a new EnumGuacamoleProperty which parses the given String
+ property values into the given corresponding enum constants.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EnumGuacamoleProperty-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EnumGuacamoleProperty</h4>
+<pre>public&nbsp;EnumGuacamoleProperty(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&nbsp;valueMapping)</pre>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>valueMapping</code> - A Map which maps all legal String values to their corresponding enum
+     constants.</dd>
+</dl>
+</li>
+</ul>
+<a name="EnumGuacamoleProperty-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EnumGuacamoleProperty</h4>
+<pre>public&nbsp;EnumGuacamoleProperty(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&nbsp;enumClass)</pre>
+<div class="block">Creates a new EnumGuacamoleProperty which parses String property values
+ into corresponding enum constants as defined by the
+ <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><code>EnumGuacamoleProperty.PropertyValue</code></a> annotations associated with those constants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>enumClass</code> - The enum whose annotated constants should be used as legal values of
+     this property.</dd>
+</dl>
+</li>
+</ul>
+<a name="EnumGuacamoleProperty-java.lang.String-java.lang.Enum-java.lang.Object:A-">
+<!--   -->
+</a><a name="EnumGuacamoleProperty-java.lang.String-T-java.lang.Object...-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnumGuacamoleProperty</h4>
+<pre>public&nbsp;EnumGuacamoleProperty(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                             <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&nbsp;value,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>...&nbsp;additional)
+                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
+<div class="block">Creates a new EnumGuacamoleProperty which parses the given String
+ property values into the given corresponding enum constants.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The first String value to accept as a legal value of this property.</dd>
+<dd><code>value</code> - The enum constant that <code>key</code> should be parsed into.</dd>
+<dd><code>additional</code> - Any additional key/value pairs to be included beyond the first. This
+     array must be even in length, where each even element is a String
+     key and each odd element is the enum constant value to be associated
+     with the key immediately preceding it.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - If any provided key is not a String, if any provided value is not
+     an enum constant from the given enum type, or if the length of
+     <code>additional</code> is not even.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="type parameter in EnumGuacamoleProperty">T</a>&gt;&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/EnumGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
new file mode 100644
index 0000000..384bbc8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FileGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FileGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class FileGuacamoleProperty" class="title">Class FileGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.FileGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">FileGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FileGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FileGuacamoleProperty</h4>
+<pre>public&nbsp;FileGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
new file mode 100644
index 0000000..7780c44
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Interface GuacamoleProperty" class="title">Interface GuacamoleProperty&lt;Type&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type this GuacamoleProperty will parse into.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleProperty&lt;Type&gt;</span></pre>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the property in guacamole.properties that this
+         GuacamoleProperty will parse.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..8d7ef17
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegerGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class IntegerGuacamoleProperty" class="title">Class IntegerGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.IntegerGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">IntegerGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IntegerGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegerGuacamoleProperty</h4>
+<pre>public&nbsp;IntegerGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
new file mode 100644
index 0000000..13e960d
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LongGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class LongGuacamoleProperty" class="title">Class LongGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.LongGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">LongGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LongGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LongGuacamoleProperty</h4>
+<pre>public&nbsp;LongGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
new file mode 100644
index 0000000..cae975f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StringGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class StringGuacamoleProperty" class="title">Class StringGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.StringGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">StringGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="StringGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StringGuacamoleProperty</h4>
+<pre>public&nbsp;StringGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html
new file mode 100644
index 0000000..f40ec87
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeZoneGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeZoneGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class TimeZoneGuacamoleProperty" class="title">Class TimeZoneGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.TimeZoneGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">TimeZoneGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a TimeZone.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#GMT_REGEX">GMT_REGEX</a></span></code>
+<div class="block">A regex that matches valid variants of GMT timezones.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#TimeZoneGuacamoleProperty--">TimeZoneGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="GMT_REGEX">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GMT_REGEX</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a> GMT_REGEX</pre>
+<div class="block">A regex that matches valid variants of GMT timezones.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeZoneGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeZoneGuacamoleProperty</h4>
+<pre>public&nbsp;TimeZoneGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/URIGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/URIGuacamoleProperty.html
new file mode 100644
index 0000000..ec0fe21
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/URIGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>URIGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="URIGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/URIGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/URIGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="URIGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class URIGuacamoleProperty" class="title">Class URIGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.URIGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">URIGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a URI.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html#URIGuacamoleProperty--">URIGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="URIGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>URIGuacamoleProperty</h4>
+<pre>public&nbsp;URIGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/URIGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/URIGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="URIGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..a5cf1fb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.BooleanGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.PropertyValue.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.PropertyValue.html
new file mode 100644
index 0000000..aea03f1
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.PropertyValue.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.PropertyValue.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue" class="title">Uses of Class<br>org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.PropertyValue.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.PropertyValue.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.html
new file mode 100644
index 0000000..1902bae
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.EnumGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.EnumGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.EnumGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/EnumGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="EnumGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
new file mode 100644
index 0000000..fe71bbc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.FileGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.FileGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
new file mode 100644
index 0000000..35499b8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty" class="title">Uses of Interface<br>org.apache.guacamole.properties.GuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> with parameters of type <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> that implement <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a>&lt;T extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;T&gt;&gt;</span></code>
+<div class="block">A GuacamoleProperty whose possible values are defined by an enum.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a TimeZone.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..525c890
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.IntegerGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
new file mode 100644
index 0000000..bcdb315
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.LongGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.LongGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
new file mode 100644
index 0000000..8e30273
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.StringGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/TimeZoneGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/TimeZoneGuacamoleProperty.html
new file mode 100644
index 0000000..d75d864
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/TimeZoneGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.TimeZoneGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.TimeZoneGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/TimeZoneGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.TimeZoneGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.TimeZoneGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.TimeZoneGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/TimeZoneGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/URIGuacamoleProperty.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/URIGuacamoleProperty.html
new file mode 100644
index 0000000..f03d804
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/class-use/URIGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.URIGuacamoleProperty (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.URIGuacamoleProperty (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/URIGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="URIGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.URIGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.URIGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.URIGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/URIGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="URIGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
new file mode 100644
index 0000000..8fa0b0b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/properties/package-summary.html" target="classFrame">org.apache.guacamole.properties</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">EnumGuacamoleProperty</a></li>
+<li><a href="FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+<li><a href="TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">TimeZoneGuacamoleProperty</a></li>
+<li><a href="URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">URIGuacamoleProperty</a></li>
+</ul>
+<h2 title="Annotation Types">Annotation Types</h2>
+<ul title="Annotation Types">
+<li><a href="EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties" target="classFrame">EnumGuacamoleProperty.PropertyValue</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
new file mode 100644
index 0000000..4c138fe
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.properties</h1>
+<div class="docSummary">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;</td>
+<td class="colLast">
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties">EnumGuacamoleProperty</a>&lt;T extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;T&gt;&gt;</td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose possible values are defined by an enum.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties">TimeZoneGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a TimeZone.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties">URIGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a URI.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation">
+<caption><span>Annotation Types Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Annotation Type</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties">EnumGuacamoleProperty.PropertyValue</a></td>
+<td class="colLast">
+<div class="block">Defines the string value which should be accepted and parsed into the
+ annotated enum constant.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.properties Description">Package org.apache.guacamole.properties Description</h2>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
new file mode 100644
index 0000000..cdd0356
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.properties</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty</span></a>&lt;T&gt; (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">TimeZoneGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">URIGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty.PropertyValue</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
new file mode 100644
index 0000000..45ba00b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.properties (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.properties (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.properties" class="title">Uses of Package<br>org.apache.guacamole.properties</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html#org.apache.guacamole.environment">BooleanGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.environment">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html#org.apache.guacamole.environment">IntegerGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html#org.apache.guacamole.environment">StringGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.properties">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
new file mode 100644
index 0000000..2604f86
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
@@ -0,0 +1,492 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ProtocolInfo (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProtocolInfo (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocols</div>
+<h2 title="Class ProtocolInfo" class="title">Class ProtocolInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocols.ProtocolInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ProtocolInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd. Each parameter is described with a Form, which
+ allows the parameters of a protocol to be exposed to the user as friendly
+ groupings of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo</a></span>()</code>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ collections of forms are used to describe the parameters for connections
+ and sharing profiles respectively.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>connectionForms</code> - A collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+<dd><code>sharingProfileForms</code> - A collection of forms describing all known parameters relevant to a
+     sharing profile whose primary connection uses this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo()</pre>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ forms are used to describe the parameters for both connections and
+ sharing profiles.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>forms</code> - A collection of forms describing all known parameters for this
+     protocol, regardless of whether it is used in the context of a
+     connection or a sharing profile.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name of this protocol. The protocol name is the
+ value required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name of this protocol. The protocol name is the value
+ required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol. Changes to this collection affect the
+ forms exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionForms</h4>
+<pre>public&nbsp;void&nbsp;setConnectionForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol. The provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionForms</code> - A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol. Changes to this collection affect the forms exposed to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setSharingProfileForms</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol. The
+ provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileForms</code> - A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
new file mode 100644
index 0000000..b0ad9be
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo" class="title">Uses of Class<br>org.apache.guacamole.protocols.ProtocolInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
new file mode 100644
index 0000000..9682f7f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocols/package-summary.html" target="classFrame">org.apache.guacamole.protocols</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
new file mode 100644
index 0000000..da1b437
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></td>
+<td class="colLast">
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
new file mode 100644
index 0000000..56ed0e8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocols</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.protocols.<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
new file mode 100644
index 0000000..0c74191
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocols" class="title">Uses of Package<br>org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocols/class-use/ProtocolInfo.html#org.apache.guacamole.environment">ProtocolInfo</a>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
new file mode 100644
index 0000000..feafaed
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
@@ -0,0 +1,495 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StandardTokens (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StandardTokens (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":41,"i1":41,"i2":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class StandardTokens" class="title">Class StandardTokens</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.StandardTokens</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">StandardTokens</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class which provides access to standardized token names, as well as
+ facilities for generating those tokens from common objects.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="USERNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PASSWORD_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_HOSTNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_HOSTNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_ADDRESS_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_ADDRESS_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DATE_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.DATE_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TIME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.TIME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.
+ These the server date and time (GUAC_DATE and GUAC_TIME respectively).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object. These
+ standardized tokens include the current username (GUAC_USERNAME),
+ password (GUAC_PASSWORD), and the server date and time (GUAC_DATE and
+ GUAC_TIME respectively). If either the username or password are not set
+ within the given credentials, the corresponding token(s) will remain
+ unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>credentials</code> - The Credentials to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials. These standardized tokens include
+ the current username (GUAC_USERNAME), password (GUAC_PASSWORD), and the
+ server date and time (GUAC_DATE and GUAC_TIME respectively). If either
+ the username or password are not set within the given user or their
+ provided credentials, the corresponding token(s) will remain unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>user</code> - The AuthenticatedUser to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
new file mode 100644
index 0000000..372dcdc
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
@@ -0,0 +1,465 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenFilter (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenFilter (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenFilter" class="title">Class TokenFilter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenFilter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenFilter</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values. Unknown tokens are not replaced. If TOKEN_NAME
+ is a valid token, the literal value "${TOKEN_NAME}" can be included by using
+ "$${TOKEN_NAME}".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter</a></span>()</code>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</code>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</code>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</code>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens</a></span>()</code>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the token having the given name to the given value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value of the token with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenFilter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter()</pre>
+<div class="block">Creates a new TokenFilter which has no associated tokens. Tokens must
+ later be given using <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-"><code>setToken(java.lang.String, java.lang.String)</code></a>
+ or <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-"><code>setTokens(java.util.Map)</code></a>.</div>
+</li>
+</ul>
+<a name="TokenFilter-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</pre>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokenValues</code> - A map containing token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setToken-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setToken</h4>
+<pre>public&nbsp;void&nbsp;setToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the token having the given name to the given value. Any existing
+ value for that token is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to set.</dd>
+<dd><code>value</code> - The value to set the token to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getToken</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the token with the given name, or null if no such
+     token exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetToken</h4>
+<pre>public&nbsp;void&nbsp;unsetToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value of the token with the given name. If no such token
+ exists, this function has no effect.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token whose value should be removed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens()</pre>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value. Changes to this map will
+ directly affect the tokens associated with this filter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTokens-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTokens</h4>
+<pre>public&nbsp;void&nbsp;setTokens(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokens</code> - A map containing the token names and corresponding values to
+     assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="filter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>filter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The string to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A copy of the input string, with any tokens replaced with their
+     corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="filterValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filterValues</h4>
+<pre>public&nbsp;void&nbsp;filterValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</pre>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - The map whose values should be filtered.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenName.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
new file mode 100644
index 0000000..1c21d4a
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenName (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenName (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenName" class="title">Class TokenName</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenName</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenName</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class for generating parameter token names.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</code>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="canonicalize-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</pre>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string. The provided string will be automatically transformed
+ from "CamelCase", "headlessCamelCase", "lowercase_with_underscores",
+ and "mixes_ofBoth_Styles" to consistent "UPPERCASE_WITH_UNDERSCORES".
+ Each returned token name will be prefixed with the string value provided
+ in the prefix.  The value provided in prefix will be prepended to the
+ string, but will itself not be transformed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to be used to generate the token name.</dd>
+<dd><code>prefix</code> - The prefix to prepend to the generated token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+<a name="canonicalize-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string. See
+ <a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-"><code>canonicalize(java.lang.String, java.lang.String)</code></a></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to use to generate the token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
new file mode 100644
index 0000000..f602a18
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.StandardTokens" class="title">Uses of Class<br>org.apache.guacamole.token.StandardTokens</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.StandardTokens</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
new file mode 100644
index 0000000..f69bdbd
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenFilter" class="title">Uses of Class<br>org.apache.guacamole.token.TokenFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a> in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
new file mode 100644
index 0000000..cb0f13f
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenName" class="title">Uses of Class<br>org.apache.guacamole.token.TokenName</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.TokenName</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
new file mode 100644
index 0000000..393bba0
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/token/package-summary.html" target="classFrame">org.apache.guacamole.token</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
new file mode 100644
index 0000000..66b1b42
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></td>
+<td class="colLast">
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></td>
+<td class="colLast">
+<div class="block">Utility class for generating parameter token names.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
new file mode 100644
index 0000000..be8927e
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.token</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-use.html
new file mode 100644
index 0000000..b797ccb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/token/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.token (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.token (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.token" class="title">Uses of Package<br>org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> used by <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/token/class-use/TokenFilter.html#org.apache.guacamole.token">TokenFilter</a>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
new file mode 100644
index 0000000..a3cdf28
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DocumentHandler (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DocumentHandler (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Class DocumentHandler" class="title">Class DocumentHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.xml.DocumentHandler</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DocumentHandler</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></pre>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters</a></span>(char[]&nbsp;ch,
+          int&nbsp;start,
+          int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.helpers.DefaultHandler">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">DefaultHandler</a></h3>
+<code>endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DocumentHandler</h4>
+<pre>public&nbsp;DocumentHandler(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+                       <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</pre>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rootElementName</code> - The name of the root element of the document
+                        being handled.</dd>
+<dd><code>root</code> - The TagHandler to use for the root element.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startElement</h4>
+<pre>public&nbsp;void&nbsp;startElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="endElement-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endElement</h4>
+<pre>public&nbsp;void&nbsp;endElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="characters-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>characters</h4>
+<pre>public&nbsp;void&nbsp;characters(char[]&nbsp;ch,
+                       int&nbsp;start,
+                       int&nbsp;length)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
new file mode 100644
index 0000000..62c6cd6
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:32 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TagHandler (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TagHandler (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Interface TagHandler" class="title">Interface TagHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TagHandler</span></pre>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)</code>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="childElement-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>childElement</h4>
+<pre><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;childElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)
+                 throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when a child element of the current element is parsed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>localName</code> - The local name of the child element seen.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The TagHandler which should handle all element-level events
+         related to the child element.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the child element being parsed was not expected,
+                      or some other error prevents a proper TagHandler
+                      from being constructed for the child element.</dd>
+</dl>
+</li>
+</ul>
+<a name="init-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre>void&nbsp;init(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+   throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - The attributes of the element seen.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If an error prevents a the TagHandler from being
+                      from being initialized.</dd>
+</dl>
+</li>
+</ul>
+<a name="complete-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>complete</h4>
+<pre>void&nbsp;complete(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)
+       throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>textContent</code> - The full text content of this element, if any.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the text content received is not valid for any
+                      reason, or the child elements parsed are not
+                      correct.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
new file mode 100644
index 0000000..6c667bb
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.xml.DocumentHandler" class="title">Uses of Class<br>org.apache.guacamole.xml.DocumentHandler</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.xml.DocumentHandler</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
new file mode 100644
index 0000000..aea166b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.xml.TagHandler" class="title">Uses of Interface<br>org.apache.guacamole.xml.TagHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a> in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> that return <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TagHandler.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> with parameters of type <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
new file mode 100644
index 0000000..1864255
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/xml/package-summary.html" target="classFrame">org.apache.guacamole.xml</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
new file mode 100644
index 0000000..0416a8b
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.xml</h1>
+<div class="docSummary">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></td>
+<td class="colLast">
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></td>
+<td class="colLast">
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.xml Description">Package org.apache.guacamole.xml Description</h2>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
new file mode 100644
index 0000000..7462a02
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.xml</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-use.html b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
new file mode 100644
index 0000000..308c6d2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.xml (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.xml (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.xml" class="title">Uses of Package<br>org.apache.guacamole.xml</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> used by <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/xml/class-use/TagHandler.html#org.apache.guacamole.xml">TagHandler</a>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/overview-frame.html b/doc/1.3.0/guacamole-ext/overview-frame.html
new file mode 100644
index 0000000..39a71c8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/overview-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/environment/package-frame.html" target="packageFrame">org.apache.guacamole.environment</a></li>
+<li><a href="org/apache/guacamole/form/package-frame.html" target="packageFrame">org.apache.guacamole.form</a></li>
+<li><a href="org/apache/guacamole/language/package-frame.html" target="packageFrame">org.apache.guacamole.language</a></li>
+<li><a href="org/apache/guacamole/net/auth/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.permission</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.simple</a></li>
+<li><a href="org/apache/guacamole/net/event/package-frame.html" target="packageFrame">org.apache.guacamole.net.event</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/package-frame.html" target="packageFrame">org.apache.guacamole.net.event.listener</a></li>
+<li><a href="org/apache/guacamole/properties/package-frame.html" target="packageFrame">org.apache.guacamole.properties</a></li>
+<li><a href="org/apache/guacamole/protocols/package-frame.html" target="packageFrame">org.apache.guacamole.protocols</a></li>
+<li><a href="org/apache/guacamole/token/package-frame.html" target="packageFrame">org.apache.guacamole.token</a></li>
+<li><a href="org/apache/guacamole/xml/package-frame.html" target="packageFrame">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/overview-summary.html b/doc/1.3.0/guacamole-ext/overview-summary.html
new file mode 100644
index 0000000..2ebbec8
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/overview-summary.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-ext 1.3.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/overview-tree.html b/doc/1.3.0/guacamole-ext/overview-tree.html
new file mode 100644
index 0000000..c3b0036
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/overview-tree.html
@@ -0,0 +1,512 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/environment/package-tree.html">org.apache.guacamole.environment</a>, </li>
+<li><a href="org/apache/guacamole/form/package-tree.html">org.apache.guacamole.form</a>, </li>
+<li><a href="org/apache/guacamole/language/package-tree.html">org.apache.guacamole.language</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/package-tree.html">org.apache.guacamole.net.auth</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-tree.html">org.apache.guacamole.net.auth.credentials</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-tree.html">org.apache.guacamole.net.auth.permission</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-tree.html">org.apache.guacamole.net.auth.simple</a>, </li>
+<li><a href="org/apache/guacamole/net/event/package-tree.html">org.apache.guacamole.net.event</a>, </li>
+<li><a href="org/apache/guacamole/net/event/listener/package-tree.html">org.apache.guacamole.net.event.listener</a>, </li>
+<li><a href="org/apache/guacamole/properties/package-tree.html">org.apache.guacamole.properties</a>, </li>
+<li><a href="org/apache/guacamole/protocols/package-tree.html">org.apache.guacamole.protocols</a>, </li>
+<li><a href="org/apache/guacamole/token/package-tree.html">org.apache.guacamole.token</a>, </li>
+<li><a href="org/apache/guacamole/xml/package-tree.html">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty</span></a>&lt;T&gt; (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/RedirectField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">RedirectField</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientBadTypeException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientBadTypeException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientOverrunException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientOverrunException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleClientTooManyException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientTooManyException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceClosedException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceConflictException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceConflictException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleResourceNotFoundException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleResourceNotFoundException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInsufficientCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleInvalidCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleCredentialsException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnauthorizedException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSecurityException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleClientException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleServerException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleConnectionClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleConnectionClosedException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleServerBusyException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerBusyException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUnsupportedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUnsupportedException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleServerException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSessionClosedException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionClosedException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSessionConflictException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionConflictException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleSessionTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleSessionTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamNotFoundException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamNotFoundException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamTimeoutException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamTimeoutException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.GuacamoleUpstreamUnavailableException
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamUnavailableException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableGuacamoleUpstreamException</span></a> (implements org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a>)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/TimeZoneGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">TimeZoneGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/URIGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">URIGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/EnumGuacamoleProperty.PropertyValue.html" title="annotation in org.apache.guacamole.properties"><span class="typeNameLink">EnumGuacamoleProperty.PropertyValue</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/package-list b/doc/1.3.0/guacamole-ext/package-list
new file mode 100644
index 0000000..c4b215c
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/package-list
@@ -0,0 +1,13 @@
+org.apache.guacamole.environment
+org.apache.guacamole.form
+org.apache.guacamole.language
+org.apache.guacamole.net.auth
+org.apache.guacamole.net.auth.credentials
+org.apache.guacamole.net.auth.permission
+org.apache.guacamole.net.auth.simple
+org.apache.guacamole.net.event
+org.apache.guacamole.net.event.listener
+org.apache.guacamole.properties
+org.apache.guacamole.protocols
+org.apache.guacamole.token
+org.apache.guacamole.xml
diff --git a/doc/1.3.0/guacamole-ext/script.js b/doc/1.3.0/guacamole-ext/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.3.0/guacamole-ext/serialized-form.html b/doc/1.3.0/guacamole-ext/serialized-form.html
new file mode 100644
index 0000000..58a7540
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/serialized-form.html
@@ -0,0 +1,652 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_265) on Mon Dec 21 15:09:33 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-ext 1.3.0 API)</title>
+<meta name="date" content="2020-12-21">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-ext 1.3.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.language</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleClientBadTypeException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleClientBadTypeException</a> extends org.apache.guacamole.GuacamoleClientBadTypeException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleClientException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleClientException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleClientException</a> extends org.apache.guacamole.GuacamoleClientException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleClientOverrunException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleClientOverrunException</a> extends org.apache.guacamole.GuacamoleClientOverrunException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleClientTimeoutException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleClientTimeoutException</a> extends org.apache.guacamole.GuacamoleClientTimeoutException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleClientTooManyException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleClientTooManyException</a> extends org.apache.guacamole.GuacamoleClientTooManyException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleConnectionClosedException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleConnectionClosedException</a> extends org.apache.guacamole.GuacamoleConnectionClosedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleCredentialsException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleInsufficientCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleInvalidCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a> implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleResourceClosedException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleResourceClosedException</a> extends org.apache.guacamole.GuacamoleResourceClosedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleResourceConflictException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleResourceConflictException</a> extends org.apache.guacamole.GuacamoleResourceConflictException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleResourceNotFoundException</a> extends org.apache.guacamole.GuacamoleResourceNotFoundException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleSecurityException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleSecurityException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleSecurityException</a> extends org.apache.guacamole.GuacamoleSecurityException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleServerBusyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleServerBusyException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleServerBusyException</a> extends org.apache.guacamole.GuacamoleServerBusyException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleServerException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleServerException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleServerException</a> extends org.apache.guacamole.GuacamoleServerException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleSessionClosedException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleSessionClosedException</a> extends org.apache.guacamole.GuacamoleSessionClosedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleSessionConflictException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleSessionConflictException</a> extends org.apache.guacamole.GuacamoleSessionConflictException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleSessionTimeoutException</a> extends org.apache.guacamole.GuacamoleSessionTimeoutException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUnauthorizedException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUnauthorizedException</a> extends org.apache.guacamole.GuacamoleUnauthorizedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUnsupportedException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUnsupportedException</a> extends org.apache.guacamole.GuacamoleUnsupportedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUpstreamException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUpstreamException</a> extends org.apache.guacamole.GuacamoleUpstreamException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUpstreamNotFoundException</a> extends org.apache.guacamole.GuacamoleUpstreamNotFoundException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUpstreamTimeoutException</a> extends org.apache.guacamole.GuacamoleUpstreamTimeoutException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/language/TranslatableGuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole.language">org.apache.guacamole.language.TranslatableGuacamoleUpstreamUnavailableException</a> extends org.apache.guacamole.GuacamoleUpstreamUnavailableException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>translatableMessage</h4>
+<pre><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> translatableMessage</pre>
+<div class="block">A translatable, human-readable description of the exception that
+ occurred.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.Credentials">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.Credentials</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>username</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> username</pre>
+<div class="block">An arbitrary username.</div>
+</li>
+<li class="blockList">
+<h4>password</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> password</pre>
+<div class="block">An arbitrary password.</div>
+</li>
+<li class="blockList">
+<h4>remoteAddress</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteAddress</pre>
+<div class="block">The address of the client end of the connection which provided these
+ credentials, if known.</div>
+</li>
+<li class="blockListLast">
+<h4>remoteHostname</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteHostname</pre>
+<div class="block">The hostname or, if the hostname cannot be determined, the address of
+ the client end of the connection which provided these credentials, if
+ known.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth.credentials</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a> extends org.apache.guacamole.GuacamoleUnauthorizedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>credentialsInfo</h4>
+<pre><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> credentialsInfo</pre>
+<div class="block">Information describing the form of valid credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/guacamole-ext/stylesheet.css b/doc/1.3.0/guacamole-ext/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.3.0/guacamole-ext/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.3.0/gug/adhoc-connections.html b/doc/1.3.0/gug/adhoc-connections.html
new file mode 100644
index 0000000..f4d817b
--- /dev/null
+++ b/doc/1.3.0/gug/adhoc-connections.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Ad-hoc Connections</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="radius-auth.html" title="Chapter 14. RADIUS Authentication" /><link rel="next" href="using-guacamole.html" title="Chapter 16. Using Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Ad-hoc Connections</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="adhoc-connections"></a>Chapter 15. Ad-hoc Connections</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#completing-quickconnect-install">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></div><a id="idm46227496939152" class="indexterm"></a><a id="idm46227496374336" class="indexterm"></a><a id="idm46227496373440" class="indexterm"></a><p>The quickconnect extension provides a connection bar on the Guacamole Client home page
+        that allows users to type in the URI of a server to which they want to connect and the client
+        will parse the URI and immediately establish the connection.  The purpose of the extension is
+        to allow situations where administrators want to allow users the flexibility of establishing
+        their own connections without having to grant them access to edit connections or even to have
+        to create the connections at all, aside from typing the URI.</p><div class="important"><h3 class="title">Important</h3><p>There are several implications of using this extension that should be well-understood
+            by administrators prior to implementing it:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Connections established with this extension are created in-memory
+                    and only persist until the Guacamole session ends.</p></li><li class="listitem"><p>Connections created with this extension are not accessible to other users, and
+                    cannot be shared with other users.</p></li><li class="listitem"><p>This extension provides no functionality for authenticating users - it does
+                    not allow anonymous logins, and requires that users are successfully authenticated
+                    by another authentication module before it can be used.</p></li><li class="listitem"><p>The extension provides users the ability not only to establish connections, but
+                    also to set any of the parameters for a connection.  There are security implications for
+                    this - for example, RDP file sharing can be used to pass through any directory available
+                    on the server running guacd to the remote desktop.  This should be taken into consideration
+                    when enabling this extension and making sure that guacd is configured in a way that
+                    does not compromise sensitive system files by allowing access to them.</p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="quickconnect-downloading"></a>Downloading the quickconnect extension</h2></div></div></div><p>The quickconnect extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided in the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The quickconnect extension is packaged as a <code class="filename">.tar.gz</code> file containing
+            only the extension itself, <code class="filename">guacamole-auth-quickconnect-1.3.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-quickconnect"></a>Installing the quickconnect extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Place the <code class="filename">guacamole-auth-quickconnect-1.3.0.jar</code> file in
+                    the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-quickconnect-config"></a>Configuring Guacamole for the quickconnect extension</h3></div></div></div><a id="idm46227496573376" class="indexterm"></a><p>This module has no configuration options.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-quickconnect-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only load newly-installed extensions during startup, so your
+                servlet container will need to be restarted before the quickconnect extension
+                can be used. <span class="emphasis"><em>Doing this will disconnect all active users, so be sure
+                    that it is safe to do so prior to attempting installation.</em></span>
+                When ready, restart your servlet container and give the extension a try.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-quickconnect"></a>Using the quickconnect extension</h2></div></div></div><p>The quickconnect extension provides a field on the home page that allows you to enter
+            a Uniform Resource Identifier (URI) to create a connection. A URI is in the form:</p><div class="informalexample"><p><code class="uri"><em class="replaceable"><code>protocol</code></em>://<em class="replaceable"><code>username</code></em>:<em class="replaceable"><code>password</code></em>@<em class="replaceable"><code>host</code></em>:<em class="replaceable"><code>port</code></em>/?<em class="replaceable"><code>parameters</code></em></code></p></div><p>The <em class="replaceable"><code>protocol</code></em> field can have any of the protocols supported
+            by Guacamole, as documented in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>. Many of the
+            protocols define a default <em class="replaceable"><code>port</code></em> value, with the exception of
+            VNC. The <em class="replaceable"><code>parameters</code></em> field can specify any of the
+            protocol-specific parameters as documented on the configuration page.</p><p>To establish a connection, simply type in a valid URI and either press "Enter" or
+            click the connect button. This extension will parse the URI and create a new connection,
+            and immediately start that connection in the current browser.</p><p>Here are a few examples of URIs:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div class="informalexample"><p><code class="uri">ssh://linux1.example.com/</code></p></div><p>Connect to the server linux1.example.com using the SSH protocol on the default
+                    SSH port (22). This will result in prompting for both username and
+                    password.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">vnc://linux1.example.com:5900/</code></p></div><p>Connect to the server linux1.example.com using the VNC protocol and specifying
+                    the port as 5900.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">
+                            rdp://localuser@windows1.example.com/?security=rdp&amp;ignore-cert=true&amp;disable-audio=true&amp;enable-drive=true&amp;drive-path=/mnt/usb
+                        </code></p></div><p>Connect to the server windows1.example.com using the RDP protocol and the user
+                    "localuser". This URI also specifies several RDP-specific parameters on the
+                    connection, including forcing security mode to RDP (security=rdp), ignoring any
+                    certificate errors (ignore-cert=true), disabling audio pass-through
+                    (disable-audio=true), and enabling filesystem redirection (enable-drive=true) to
+                    the /mnt/usb folder on the system running guacd (drive-path=/mnt/usb).</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. RADIUS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Using Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/administration.html b/doc/1.3.0/gug/administration.html
new file mode 100644
index 0000000..927e428
--- /dev/null
+++ b/doc/1.3.0/gug/administration.html
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Administration</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="using-guacamole.html" title="Chapter 16. Using Guacamole" /><link rel="next" href="troubleshooting.html" title="Chapter 18. Troubleshooting" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Administration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="administration"></a>Chapter 17. Administration</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-sessions">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-history">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#user-group-membership">Editing group membership</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#idm46227496044944">Group membership of groups</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#connection-group-management">Connection organization and balancing</a></span></dt><dt><span class="section"><a href="administration.html#idm46227493371408">Connection sharing</a></span></dt></dl></dd></dl></div><a id="idm46227495819248" class="indexterm"></a><p>Users, user groups, connections, and active sessions can be administered from within the
+        web interface if the underlying authentication module supports this. The only
+        officially-supported authentication modules supporting this are the database extensions,
+        which are documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p><p>If you are using the default authentication mechanism, or another authentication
+        extension, this chapter probably does not apply to you, and the management options will not
+        be visible in the Guacamole interface. If, on the other hand, you are using one of the
+        database authentication providers, and you are logged in as a user with sufficient
+        privileges, you will see management sections listed within the settings screen:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guacamole-settings-sections.png" width="315" /><div class="caption"><p>Sections within the Guacamole settings screen.</p></div></div></div><p>Clicking any of these options will take you to a corresponding management section where
+        you can perform administrative tasks.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="session-management"></a>Managing sessions</h2></div></div></div><a id="idm46227495775888" class="indexterm"></a><p>Clicking "Active Sessions" navigates to the session management screen. The session
+            management screen displays all active sessions and allows system administrators to kill
+            them as needed.</p><p>When any user accesses a particular remote desktop connection, a unique session is
+            created and will appear in the list of active sessions in the session management screen.
+            Each active session is displayed in a sortable table, showing the corresponding user's
+            username, how long the session has been active, the IP address of the machine from which
+            the user is connecting, and the name of the connection being used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-sessions.png" width="450" /><div class="caption"><p>Session management interface</p></div></div></div></div><p>To kill one or more sessions, select the sessions by clicking their checkboxes. Once
+            all desired sessions have been selected, clicking "Kill Sessions" will immediately
+            disconnect those users from the associated connection.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-sessions"></a>Filtering and sorting</h3></div></div></div><p>The table can be resorted by clicking on the column headers. Clicking any column
+                will resort the table by the values within that column, while clicking a column
+                which is already sorted will toggle between ascending and descending order.</p><p>The content of the table can be limited through search terms specified in the
+                "Filter" field. Entering search terms will limit the table to only sessions
+                containing those terms. For example, to list only connections by the user
+                "guacadmin" which have been active since March, 2015, you would enter: "guacadmin
+                2015-03". Beware that if a search term needs to contain spaces, it must be enclosed
+                in double quotes to avoid being interpreted as multiple terms.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-1.png" width="450" /></div></div><p>If you wish to narrow the content of the table to only those connections which
+                originate from a particular block of IP addresses, you can do this by specifying the
+                block in standard CIDR notation, such "10.0.0.0/8" or "2001:db8:1234::/48". This
+                will work with both IPv4 and IPv6 addresses.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-2.png" width="450" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-history"></a>Connection history</h2></div></div></div><a id="idm46227496101648" class="indexterm"></a><a id="idm46227496100752" class="indexterm"></a><p>Clicking "History" navigates to the connection history screen. The connection history
+            screen displays a table of the most recent connections, including the user that used
+            that connection, the time the connection began, and how long the connection was
+            used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-history.png" width="450" /><div class="caption"><p>Connection history interface</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-history"></a>Filtering and sorting</h3></div></div></div><p>Initially, the connection history table will display only the most recent history
+                records. You can page through these records to see how and when Guacamole has been
+                used.</p><p>Just as with the table of active sessions described earlier, the table of history
+                records can be resorted by clicking on the column headers or filtered by entering
+                search terms within the "Filter" field.</p><p>The same filtering format applies - a search term containing spaces must be
+                enclosed in double quotes to avoid being interpreted as multiple terms, and only
+                history records which contain each term will be included in the history table.
+                Unlike the table of active sessions, however, the filter will only take effect once
+                you click the "Search" button. This is due to the nature of the connection history,
+                as the number of records may be quite extensive.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-management"></a>User management</h2></div></div></div><a id="idm46227496090608" class="indexterm"></a><p>Clicking "Users" within the list of settings sections will take you to the user
+            management screen. Here you can add new users, edit the properties and privileges of
+            existing users, and view the times that each user last logged in. If you have a large
+            number of users, you can also enter search terms within the "Filter" field to filter the
+            list of users by username.</p><p>To add a new user, click the "New User" button. This will take you to a screen where
+            you will be allowed to enter the details of the new user, such as the password and
+            username. Note that, unless you specify otherwise, the new user will have no access to
+            any existing connections, nor any administrative privileges, and you will need to
+            manually set the user's password before they will be able to log in.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-users.png" width="450" /><div class="caption"><p>User management interface</p></div></div></div></div><p>To edit a user, just click on the user you wish to edit. You will be taken to a screen
+            which allows you to change the user's password, expire their password (such that it must
+            be changed at next login), add or remove administrative permissions, and add or remove
+            read access to specific connections, sharing profiles, or groups. If you are managing a
+            large number of connections or groups and wish to reduce the size of the list displayed,
+            you can do so by specifying search terms within the "Filter" field. Groups will be
+            filtered by name and connections will be filtered by name or protocol.</p><p>If you have delete permission on the user, you will also see a "Delete" button.
+            Clicking this button will permanently delete the user. Alternatively, if you only wish
+            to temporarily disable the account, checking "Login disabled" will achieve the same
+            effect while not removing the user entirely. If they attempt to log in, the attempt will
+            be rejected as if their account did not exist at all.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user.png" width="450" /><div class="caption"><p>Editing a user</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-group-membership"></a>Editing group membership</h3></div></div></div><p>When editing a user, the groups that user is a member of may be modified within
+                the "Groups" section. By default, only groups that the user is already a member of
+                will be displayed. If you have permission to modify the user's membership within a
+                group, an "X" icon will be available next to that group's name. Clicking the "X"
+                will remove the user from that group, taking effect after the user is saved.</p><p>To add users to a group, the arrow next to the list of groups must be clicked to
+                expand the section and reveal all available groups. Available groups may then be
+                checked/unchecked to modify the user's membership within those groups:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-membership.png" width="450" /><div class="caption"><p>Editing group membership of a user</p></div></div></div></div><p>If you have a large number of available groups, you can also enter search terms
+                within the "Filter" field to filter the list of groups by name.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-group-management"></a>User group management</h2></div></div></div><a id="idm46227496057744" class="indexterm"></a><a id="idm46227496056848" class="indexterm"></a><a id="idm46227496055952" class="indexterm"></a><p>Clicking "Groups" within the list of settings sections will take you to the user group
+            management screen. Here you can add new groups and edit the properties and privileges of
+            existing groups. If you have a large number of user groups, you can also enter search
+            terms within the "Filter" field to filter the list of groups by name:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-groups.png" width="450" /><div class="caption"><p>User group management interface</p></div></div></div></div><p>To add a new group, click the "New Group" button. This will take you to a screen where
+            you will be allowed to enter the details of the new group, including membership and any
+            permissions that members of the group should have.</p><p>To edit a group, just click on the group you wish to edit. You will be taken to a
+            screen which allows you to modify membership, add or remove administrative permissions,
+            and add or remove read access to specific connections, sharing profiles, or connection
+            groups. If you are managing a large number of connections or groups and wish to reduce
+            the size of the list displayed, you can do so by specifying search terms within the
+            "Filter" field. Connection groups will be filtered by name and connections will be
+            filtered by name or protocol.</p><p>If you have delete permission on the group, you will also see a "Delete" button.
+            Clicking this button will permanently delete the group. Alternatively, if you only wish
+            to temporarily disable the effects of membership in the group, checking "Disabled" will
+            achieve the same effect while not removing the group entirely.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-group.png" width="450" /><div class="caption"><p>Editing a user group</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496044944"></a>Group membership of groups</h3></div></div></div><p>Managing the group membership of groups is more complex than that of users, as
+                groups may contain both users and groups, with permissions from parent groups
+                possibly being inherited. Parent groups, member groups, and member users, can all be
+                managed identically to the <a class="link" href="administration.html#user-group-membership" title="Editing group membership">group memberships of users</a>, with a
+                corresponding section dedicated to each within the user group editor:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group-memberships.png" width="450" /><div class="caption"><p>Editing the various membership relations of a user group</p></div></div></div></div><p>Note that it is ultimately up to the extension providing the group to determine
+                how permissions granted to that group are inherited, if at all. The <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a> implements full recursive inheritance of group
+                permissions, with permissions granted to a group being granted to all
+                members/descendants of that group, regardless of how deeply those members are
+                nested.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-management"></a>Connections and connection groups</h2></div></div></div><a id="idm46227496035376" class="indexterm"></a><a id="idm46227496034480" class="indexterm"></a><a id="idm46227496033584" class="indexterm"></a><p>Clicking "Connections" within the list of settings sections will take you to the
+            connection management screen. The connection management screen allows administrators to
+            create and edit connections, sharing profiles, and connection groups. If you have a
+            large number of connections, you can also enter search terms within the "Filter" field
+            to filter the list of connections by name or protocol.</p><p>To add a new connection or connection group, click the "New Connection" or "New Group"
+            button, or the "New Connection" or "New Group" placeholders which appear when you expand
+            an existing connection group. These options will take you to a screen where you will be
+            allowed to enter the details of the new object, such as its location, parameters, and
+            name. This name should be descriptive, but must also be unique with respect to other
+            objects in the same location.</p><p>Once you click "Save", the new object will be added, but will initially only be usable
+            by administrators and your current user. To grant another user access to the new
+            connection or connection group, you must <a class="link" href="administration.html#user-management" title="User management">edit that
+                user</a> or <a class="link" href="administration.html#user-group-management" title="User group management">a user group that the user is a member of</a>,
+            checking the box corresponding to the connection or connection group you created.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-connections.png" width="450" /><div class="caption"><p>Connection management interface</p></div></div></div></div><p>Editing connections, sharing profiles, and connection groups works identically to
+            editing a user. Click on the object you wish to edit, and you will be taken to screen
+            which allows you to edit it. The screen will display all properties of the object,
+            including its usage history, if applicable.</p><p>If you have delete permission on the object, you will also see a "Delete" button.
+            Clicking this button will permanently delete the object being edited.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-connection.png" width="450" /><div class="caption"><p>Editing a connection</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="connection-group-management"></a>Connection organization and balancing</h3></div></div></div><p>Connection groups can be either "organizational" or "balancing". Each group can
+                contain any number of other connections or groups, but the semantics of the group
+                change depending on the type.</p><p>An organizational group behaves exactly as a folder or directory in a file system.
+                It simply contains connections and other groups, but provides no other behavior.
+                Clicking on an organizational group within a connection list will expand the group,
+                revealing its contents.</p><p>A balancing group behaves as a connection. It dynamically balances load across the
+                connections it contains, choosing the connection with the fewest number of active
+                users. Unlike organizational groups, clicking on a balancing group causes a new
+                connection to be opened. The actual underlying connection used depends on which
+                connection has the least load at the time the group was clicked, and whether session
+                affinity is enabled on that group.</p><p><a id="idm46227493376496" class="indexterm"></a>Enabling session affinity for a balancing group ensures that users are
+                consistently routed to the same underlying connections until they log out of
+                Guacamole. The load balancing behavior of the balancing group will apply only for
+                the first time a particular user connects to the group. If your users may lose their
+                desktop state if they are routed to a different underlying connection, this option
+                should be enabled.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group.png" width="450" /><div class="caption"><p>Editing a connection group</p></div></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227493371408"></a>Connection sharing</h3></div></div></div><p>The ability to share a connection is governed through the use of "sharing
+                profiles". If a sharing profile is created for a connection, users with access to
+                both that connection and that sharing profile will be able to share the connection
+                with other users by <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">generating connection sharing links</a>, even if
+                those users do not otherwise have user accounts within Guacamole.</p><p>The name of the sharing profile will be presented an option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                    menu</a> for any users with access, while the level of access granted to
+                users of generated share links will be dictated by the parameters specified for the
+                sharing profile.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only extension which ships with Guacamole and implements enough
+                        of the <a class="link" href="guacamole-ext.html" title="Chapter 23. guacamole-ext">Guacamole extension API</a> to share its
+                        connections is the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a></em></span>.
+                    If you wish to share connections (or allow your users to share connections), you
+                    will need to use the database authentication extension to store those
+                    connections.</p><p>If you need to use other authentication schemes, keep in mind that the
+                    database authentication extension can be used <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">alongside other extensions</a>, with the database handling connection
+                    storage and permissions only. Writing your own extension which supports sharing
+                    is another alternative, though that may be overly complicated if everything you
+                    need is already provided.</p></div><p>Unlike connections and groups, there is no "New Sharing Profile" button. Sharing
+                profiles are created through clicking the "New Sharing Profile" placeholders which
+                appear when connections are expanded. Just as expanding a connection group reveals
+                the connections or groups therein, expanding a connection reveals the sharing
+                profiles associated with that connection. This holds true with both <a class="link" href="administration.html#connection-management" title="Connections and connection groups">the
+                    list of connections in the connection management screen</a> and <a class="link" href="administration.html#user-management" title="User management">the list of
+                    connections in the user editor</a>.</p><p>Creating or editing a sharing profile is virtually identical to creating or
+                editing a connection, with the exception that not all connection parameters are
+                available:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-sharing-profile.png" width="450" /><div class="caption"><p>Editing a sharing profile</p></div></div></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 16. Using Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. Troubleshooting</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/appendices.html b/doc/1.3.0/gug/appendices.html
new file mode 100644
index 0000000..1367f90
--- /dev/null
+++ b/doc/1.3.0/gug/appendices.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Appendices</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="writing-you-own-guacamole-app.html" title="Chapter 27. Writing your own Guacamole application" /><link rel="next" href="faq.html" title="Appendix A. FAQ" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="appendices"></a>Part III. Appendices</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt></dl></dd><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 27. Writing your own Guacamole application </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. FAQ</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/book-index.html b/doc/1.3.0/gug/book-index.html
new file mode 100644
index 0000000..f641687
--- /dev/null
+++ b/doc/1.3.0/gug/book-index.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Index</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a id="book-index"></a>Index</h2></div></div></div><div xmlns:xlink="http://www.w3.org/1999/xlink" class="index"><div class="indexdiv"><h3>A</h3><dl><dt id="ientry-idm46227491095536">ack, <a class="indexterm" href="protocol-reference.html#ack-instruction">ack</a></dt><dt id="ientry-idm46227496374336">adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt><dt id="ientry-idm46227495819248">administration, <a class="indexterm" href="administration.html">Administration</a></dt><dt id="ientry-idm46227497344064">allowed-languages, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227493137824">API</dt><dd><dl><dt>C, <a class="indexterm" href="libguac.html">libguac</a></dt><dt>Java, <a class="indexterm" href="guacamole-common.html">guacamole-common</a>, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt>JavaScript, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt></dl></dd><dt id="ientry-idm46227497347104">api-session-timeout, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227492289904">application</dt><dd><dl><dt>development, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></dd><dt id="ientry-idm46227491423328">arc, <a class="indexterm" href="protocol-reference.html#arc-instruction">arc</a></dt><dt id="ientry-idm46227498193216">architecture, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46227491022272">argv, <a class="indexterm" href="protocol-reference.html#argv-instruction">argv</a></dt><dt id="ientry-idm46227494684912">audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="protocol-reference.html#audio-stream-instruction">audio</a>, <a class="indexterm" href="protocol-reference.html#audio-handshake-instruction">audio</a></dt><dt id="ientry-idm46227494679920">audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227495304384">authentication, <a class="indexterm" href="configuring-guacamole.html#basic-auth">Using the default authentication</a></dt><dd><dl><dt>custom, <a class="indexterm" href="custom-auth.html">Custom authentication</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>B</h3><dl><dt id="ientry-idm46227493426400">bind_host, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227493422656">bind_port, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227491003648">blob, <a class="indexterm" href="protocol-reference.html#blob-instruction">blob</a></dt><dt id="ientry-idm46227490916704">body, <a class="indexterm" href="protocol-reference.html#body-object-instruction">body</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt id="ientry-idm46227496936624">CAS Authentication, <a class="indexterm" href="cas-auth.html">CAS Authentication</a></dt><dt id="ientry-idm46227497692336">CAS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt></dl></dd><dt id="ientry-idm46227491405680">cfill, <a class="indexterm" href="protocol-reference.html#cfill-instruction">cfill</a></dt><dt id="ientry-idm46227490810896">client instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46227498186064">client plugin, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dt id="ientry-idm46227491384784">clip, <a class="indexterm" href="protocol-reference.html#clip-instruction">clip</a></dt><dt id="ientry-idm46227495795312">clipboard, <a class="indexterm" href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a>, <a class="indexterm" href="protocol-reference.html#clipboard-instruction">clipboard</a></dt><dt id="ientry-idm46227495030352">clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt id="ientry-idm46227491378720">close, <a class="indexterm" href="protocol-reference.html#close-instruction">close</a></dt><dt id="ientry-idm46227497776816">compiling</dt><dd><dl><dt>Guacamole, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt></dl></dd><dt id="ientry-idm46227497355456">configuration, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227497693248">configuring CAS authentication, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt><dt id="ientry-idm46227497339472">configuring Duo, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt><dt id="ientry-idm46227498082320">configuring HTTP header authentication, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt><dt id="ientry-idm46227496921840">configuring LDAP, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt><dt id="ientry-idm46227495609696">configuring OpenID Connect authentication, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt><dt id="ientry-idm46227496573376">configuring quickconnect, <a class="indexterm" href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></dt><dt id="ientry-idm46227496742560">configuring RADIUS authentication, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt><dt id="ientry-idm46227496841600">configuring SAML authentication, <a class="indexterm" href="saml-auth.html#guac-saml-config">Configuring Guacamole for SAML Authentication</a></dt><dt id="ientry-idm46227497962448">configuring TOTP, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt><dt id="ientry-idm46227490858560">connect, <a class="indexterm" href="protocol-reference.html#connect-instruction">connect</a></dt><dt id="ientry-idm46227493304528">Connecting, waiting for first update..., <a class="indexterm" href="troubleshooting.html#idm46227493305264">No graphics appear</a></dt><dt id="ientry-idm46227494573632">connection broker, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46227496034480">connection groups, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46227496100752">connection history, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46227496035376">connection management, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46227495282624">connections</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#connection-setup">Adding connections to a user</a></dt><dt>adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></dd><dt id="ientry-idm46227490813136">control instructions, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt id="ientry-idm46227491372496">copy, <a class="indexterm" href="protocol-reference.html#copy-instruction">copy</a></dt><dt id="ientry-idm46227491350528">cstroke, <a class="indexterm" href="protocol-reference.html#cstroke-instruction">cstroke</a></dt><dt id="ientry-idm46227491327712">cursor, <a class="indexterm" href="protocol-reference.html#cursor-instruction">cursor</a></dt><dt id="ientry-idm46227491316704">curve, <a class="indexterm" href="protocol-reference.html#curve-instruction">curve</a></dt><dt id="ientry-idm46227492290912">custom application, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></div><div class="indexdiv"><h3>D</h3><dl><dt id="ientry-idm46227496355040">default user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46227497399872">deploying, <a class="indexterm" href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></dt><dt id="ientry-idm46227495003792">disable clipboard, <a class="indexterm" href="configuring-guacamole.html#vnc-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-disable-clipboard">Disabling clipboard access</a></dt><dt id="ientry-idm46227494685696">disabling audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227490807072">disconnect, <a class="indexterm" href="protocol-reference.html#client-disconnect-instruction">disconnect</a>, <a class="indexterm" href="protocol-reference.html#server-disconnect-instruction">disconnect</a></dt><dt id="ientry-idm46227491298416">dispose, <a class="indexterm" href="protocol-reference.html#dispose-instruction">dispose</a></dt><dt id="ientry-idm46227491291936">distort, <a class="indexterm" href="protocol-reference.html#distort-instruction">distort</a></dt><dt id="ientry-idm46227497919776">docker, <a class="indexterm" href="guacamole-docker.html">Installing Guacamole with Docker</a></dt><dt id="ientry-idm46227491428896">drawing instructions, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt id="ientry-idm46227495917712">Duo, <a class="indexterm" href="duo-auth.html">Duo two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt id="ientry-idm46227495361808">enable-environment-properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227494680720">enabling audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227494665040">enabling file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227494675536">enabling printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227490986992">end, <a class="indexterm" href="protocol-reference.html#end-instruction">end</a></dt><dt id="ientry-idm46227490785120">error, <a class="indexterm" href="protocol-reference.html#error-instruction">error</a></dt><dt id="ientry-idm46227493309072">errors, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dd><dl><dt>guacd, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt></dl></dd><dt id="ientry-idm46227493028336">events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt><dd><dl><dt>listeners, <a class="indexterm" href="event-listeners.html">Event listeners</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt id="ientry-idm46227490980672">file, <a class="indexterm" href="protocol-reference.html#file-stream-instruction">file</a></dt><dt id="ientry-idm46227494664240">file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="using-guacamole.html#file-transfer">Transferring files</a></dt><dt id="ientry-idm46227490904128">filesystem, <a class="indexterm" href="protocol-reference.html#filesystem-object-instruction">filesystem</a></dt></dl></div><div class="indexdiv"><h3>G</h3><dl><dt id="ientry-idm46227494578144">gateway domain, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227494590608">gateway hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227494581136">gateway password, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227494587264">gateway port, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227494584240">gateway username, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227490895600">get, <a class="indexterm" href="protocol-reference.html#get-object-instruction">get</a></dt><dt id="ientry-idm46227496055952">groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a>, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46227496354144">guacadmin, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46227498146400">Guacamole</dt><dd><dl><dt>definition, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt>history, <a class="indexterm" href="preface.html">Introduction</a></dt></dl></dd><dt id="ientry-idm46227498100096">Guacamole protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a>, <a class="indexterm" href="guacamole-protocol.html">The Guacamole protocol</a>, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46227497429920">guacamole-client</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46227495991600">guacamole-common, <a class="indexterm" href="guacamole-common.html">guacamole-common</a></dt><dt id="ientry-idm46227492895760">guacamole-common-js, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt><dt id="ientry-idm46227492908608">guacamole-ext, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt id="ientry-idm46227498049344">guacamole-server</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227497356576">guacamole.properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227497431392">guacamole.war</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46227495399744">guacamole_connection, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46227496147888">guacamole_connection_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></dt><dt id="ientry-idm46227495734064">guacamole_connection_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-group-permissions">Connection group permissions</a></dt><dt id="ientry-idm46227496657840">guacamole_connection_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-history">Usage history</a></dt><dt id="ientry-idm46227495398720">guacamole_connection_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46227495763136">guacamole_connection_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-permissions">Connection permissions</a></dt><dt id="ientry-idm46227496681120">guacamole_entity, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></dt><dt id="ientry-idm46227497845296">GUACAMOLE_HOME, <a class="indexterm" href="configuring-guacamole.html#guacamole-home">GUACAMOLE_HOME (/etc/guacamole)</a></dt><dt id="ientry-idm46227496171328">guacamole_sharing_profile, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46227496170288">guacamole_sharing_profile_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46227495748720">guacamole_sharing_profile_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profile-permissions">Sharing profile permissions</a></dt><dt id="ientry-idm46227495872656">guacamole_system_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-system-permissions">lSystem permissions</a></dt><dt id="ientry-idm46227496665360">guacamole_user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></dt><dt id="ientry-idm46227495687840">guacamole_user_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46227495409600">guacamole_user_group_member, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46227495575008">guacamole_user_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-group-permissions">User group permissions</a></dt><dt id="ientry-idm46227496883200">guacamole_user_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-login-history">Login history</a></dt><dt id="ientry-idm46227496441920">guacamole_user_password_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-password-history">Password history</a></dt><dt id="ientry-idm46227495589856">guacamole_user_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-user-permissions">User permissions</a></dt><dt id="ientry-idm46227495655232">guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt id="ientry-idm46227498186960">guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>errors, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt><dt>logging, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>startup script, <a class="indexterm" href="installing-guacamole.html#guacamole-server-build-process">The build process</a></dt></dl></dd><dt id="ientry-idm46227495354576">guacd-hostname, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227495350752">guacd-port, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227495346928">guacd-ssl, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227493466336">guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227495654368">guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt></dl></div><div class="indexdiv"><h3>H</h3><dl><dt id="ientry-idm46227493168672">handshake</dt><dd><dl><dt>instructions, <a class="indexterm" href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></dt></dl></dd><dt id="ientry-idm46227498194112">history, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a>, <a class="indexterm" href="guacamole-architecture.html#realmint">RealMint</a>, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46227497934064">HTTP header authentication, <a class="indexterm" href="header-auth.html">HTTP header authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt></dl></dd><dt id="ientry-idm46227494632672">Hyper-V, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a></dt></dl></div><div class="indexdiv"><h3>I</h3><dl><dt id="ientry-idm46227491273952">identity, <a class="indexterm" href="protocol-reference.html#identity-instruction">identity</a></dt><dt id="ientry-idm46227490853664">image, <a class="indexterm" href="protocol-reference.html#image-handshake-instruction">image</a></dt><dt id="ientry-idm46227490970480">img, <a class="indexterm" href="protocol-reference.html#img-instruction">img</a></dt><dt id="ientry-idm46227498192320">implementation, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46227496116928">input method editors, <a class="indexterm" href="using-guacamole.html#text-input">Typing without a physical keyboard</a></dt><dt id="ientry-idm46227497777712">installing, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt><dt id="ientry-idm46227491430832">instructions, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46227495514992">interacting, <a class="indexterm" href="using-guacamole.html">Using Guacamole</a></dt></dl></div><div class="indexdiv"><h3>K</h3><dl><dt id="ientry-idm46227490737456">key, <a class="indexterm" href="protocol-reference.html#key-instruction">key</a></dt><dt id="ientry-idm46227494830016">keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt id="ientry-idm46227493759744">Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes">Kubernetes</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-kubernetes">Adding a Kubernetes connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>container, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>namespace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>pod, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>scrollback, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt></dl></dd><dt id="ientry-idm46227494936112">KVM, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt></dl></div><div class="indexdiv"><h3>L</h3><dl><dt id="ientry-idm46227497978416">LDAP, <a class="indexterm" href="ldap-auth.html">LDAP authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt></dl></dd><dt id="ientry-idm46227491267472">lfill, <a class="indexterm" href="protocol-reference.html#lfill-instruction">lfill</a></dt><dt id="ientry-idm46227498184336">libguac, <a class="indexterm" href="libguac.html">libguac</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>relationship with guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt></dl></dd><dt id="ientry-idm46227498050784">libguac-client-kubernetes</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227498055200">libguac-client-rdp</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227498053728">libguac-client-ssh</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227498052256">libguac-client-telnet</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227498056672">libguac-client-vnc</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227491257168">line, <a class="indexterm" href="protocol-reference.html#line-instruction">line</a></dt><dt id="ientry-idm46227494574384">load balancing, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46227494562128">loadbalanceinfo, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46227490775840">log, <a class="indexterm" href="protocol-reference.html#log-instruction">log</a></dt><dt id="ientry-idm46227495332544">logging, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dd><dl><dt>debug, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>errors, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>guacd, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>info, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>trace, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>warnings, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt></dl></dd><dt id="ientry-idm46227493433264">log_level, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227491246800">lstroke, <a class="indexterm" href="protocol-reference.html#lstroke-instruction">lstroke</a></dt></dl></div><div class="indexdiv"><h3>M</h3><dl><dt id="ientry-idm46227495626736">mouse, <a class="indexterm" href="using-guacamole.html#touch-mouse">Mouse emulation</a>, <a class="indexterm" href="protocol-reference.html#server-mouse-instruction">mouse</a>, <a class="indexterm" href="protocol-reference.html#client-mouse-instruction">mouse</a></dt><dt id="ientry-idm46227491230576">move, <a class="indexterm" href="protocol-reference.html#move-instruction">move</a></dt><dt id="ientry-idm46227496737552">MySQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt></dl></div><div class="indexdiv"><h3>N</h3><dl><dt id="ientry-idm46227490954336">nest, <a class="indexterm" href="protocol-reference.html#nest-stream-instruction">nest</a></dt><dt id="ientry-idm46227490803136">nop, <a class="indexterm" href="protocol-reference.html#client-nop-instruction">nop</a>, <a class="indexterm" href="protocol-reference.html#server-nop-instruction">nop</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt id="ientry-idm46227497717184">OpenID Connect Authentication, <a class="indexterm" href="openid-auth.html">OpenID Connect Authentication</a></dt><dt id="ientry-idm46227495608768">OpenID Connect authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt id="ientry-idm46227495268336">parameters</dt><dd><dl><dt>guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-authentication">Authentication and SSL/TLS</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>prompt, <a class="indexterm" href="configuring-guacamole.html#parameter-prompting">Parameter prompting</a></dt><dt>RDP, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>SSH, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a>, <a class="indexterm" href="configuring-guacamole.html#idm46227494260112">Internationalization/Locale settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>telnet, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-disable-clipboard">Disabling clipboard access</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></dd><dt id="ientry-idm46227493439680">pid_file, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227490939488">pipe, <a class="indexterm" href="protocol-reference.html#pipe-instruction">pipe</a></dt><dt id="ientry-idm46227491216176">pop, <a class="indexterm" href="protocol-reference.html#pop-instruction">pop</a></dt><dt id="ientry-idm46227496988928">PostgreSQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46227494606352">preconnection BLOB, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a></dt><dt id="ientry-idm46227494609936">preconnection ID, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a></dt><dt id="ientry-idm46227494633424">preconnection PDU, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a></dt><dt id="ientry-idm46227494674736">printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46227498099200">protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></dt><dt id="ientry-idm46227491431600">protocol reference, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46227492900720">protocols</dt><dd><dl><dt>implementing, <a class="indexterm" href="custom-protocols.html">Adding new protocols</a></dt></dl></dd><dt id="ientry-idm46227493303664">proxies, <a class="indexterm" href="troubleshooting.html#idm46227493305264">No graphics appear</a></dt><dt id="ientry-idm46227495097472">proxy</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46227491209616">push, <a class="indexterm" href="protocol-reference.html#push-instruction">push</a></dt><dt id="ientry-idm46227490883280">put, <a class="indexterm" href="protocol-reference.html#put-object-instruction">put</a></dt></dl></div><div class="indexdiv"><h3>Q</h3><dl><dt id="ientry-idm46227494937024">QEMU, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt><dt id="ientry-idm46227496373440">quickconnect, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></div><div class="indexdiv"><h3>R</h3><dl><dt id="ientry-idm46227496380144">RADIUS Authentication, <a class="indexterm" href="radius-auth.html">RADIUS Authentication</a></dt><dt id="ientry-idm46227496741648">RADIUS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt></dl></dd><dt id="ientry-idm46227494931872">RDP, <a class="indexterm" href="configuring-guacamole.html#rdp">RDP</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-rdp">Adding an RDP connection</a></dt><dt>Aero, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>ClearType, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>client-name, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>console, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>console audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>desktop composition, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>disable clipboard, <a class="indexterm" href="configuring-guacamole.html#rdp-disable-clipboard">Disabling clipboard access</a></dt><dt>disabling authentication, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>display resolution, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>display size, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>domain, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a></dt><dt>font smoothing, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>full window drag, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>glyph caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>ignoring certificates, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>initial program, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>menu animations, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>NLA, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>offscreen bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>security, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>theming, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>TLS, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>wallpaper, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>wol-broadcast-addr, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-mac-addr, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-send-packet, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-wait-time, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></dd><dt id="ientry-idm46227497765536">RDP support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227490756416">ready, <a class="indexterm" href="protocol-reference.html#ready-instruction">ready</a></dt><dt id="ientry-idm46227498142080">RealMint, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt id="ientry-idm46227494950592">RealVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46227491203136">rect, <a class="indexterm" href="protocol-reference.html#rect-instruction">rect</a></dt><dt id="ientry-idm46227494601168">remote desktop gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46227494437104">RemoteApp, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a></dt><dt id="ientry-idm46227495098736">repeater</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46227491186896">reset, <a class="indexterm" href="protocol-reference.html#reset-instruction">reset</a></dt></dl></div><div class="indexdiv"><h3>S</h3><dl><dt id="ientry-idm46227496333168">SAML Authentication, <a class="indexterm" href="saml-auth.html">SAML Authentication</a></dt><dt id="ientry-idm46227496840688">SAML authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="saml-auth.html#guac-saml-config">Configuring Guacamole for SAML Authentication</a></dt></dl></dd><dt id="ientry-idm46227496348784">schema, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a>, <a class="indexterm" href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></dt><dt id="ientry-idm46227490848368">select, <a class="indexterm" href="protocol-reference.html#select-instruction">select</a></dt><dt id="ientry-idm46227491426656">server instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#server-control-instructions">Server control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt></dl></dd><dt id="ientry-idm46227493419056">server_certificate, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227493414768">server_key, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46227493376496">session affinity, <a class="indexterm" href="administration.html#connection-group-management">Connection organization and balancing</a></dt><dt id="ientry-idm46227495775888">session management, <a class="indexterm" href="administration.html#session-management">Managing sessions</a></dt><dt id="ientry-idm46227491180464">set, <a class="indexterm" href="protocol-reference.html#set-instruction">set</a></dt><dt id="ientry-idm46227495143360">SFTP, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt id="ientry-idm46227491170288">shade, <a class="indexterm" href="protocol-reference.html#shade-instruction">shade</a></dt><dt id="ientry-idm46227491161920">size, <a class="indexterm" href="protocol-reference.html#size-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-handshake-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-event-instruction">size</a></dt><dt id="ientry-idm46227495341440">skip-if-unavailable, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46227494386384">SSH, <a class="indexterm" href="configuring-guacamole.html#ssh">SSH</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-ssh">Adding an SSH connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>command, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a></dt><dt>disable clipboard, <a class="indexterm" href="configuring-guacamole.html#ssh-disable-clipboard">Disabling clipboard access</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a></dt><dt>guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>host-key, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>locale, <a class="indexterm" href="configuring-guacamole.html#idm46227494260112">Internationalization/Locale settings</a></dt><dt>passphrase, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>public key authentication, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>server-alive-interval, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#idm46227494260112">Internationalization/Locale settings</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>wol-broadcast-addr, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-mac-addr, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-send-packet, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-wait-time, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></dd><dt id="ientry-idm46227497764192">SSH support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227491151648">start, <a class="indexterm" href="protocol-reference.html#start-instruction">start</a></dt><dt id="ientry-idm46227490798896">sync, <a class="indexterm" href="protocol-reference.html#client-sync-instruction">sync</a>, <a class="indexterm" href="protocol-reference.html#server-sync-instruction">sync</a></dt><dt id="ientry-idm46227493351808">syslog, <a class="indexterm" href="troubleshooting.html#syslog">syslog</a></dt></dl></div><div class="indexdiv"><h3>T</h3><dl><dt id="ientry-idm46227494040784">telnet, <a class="indexterm" href="configuring-guacamole.html#telnet">Telnet</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-telnet">Adding a telnet connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>disable clipboard, <a class="indexterm" href="configuring-guacamole.html#telnet-disable-clipboard">Disabling clipboard access</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt><dt>wol-broadcast-addr, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-mac-addr, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-send-packet, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-wait-time, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></dd><dt id="ientry-idm46227498058016">telnet support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46227494949680">TigerVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46227494946640">TightVNC, <a class="indexterm" href="configuring-guacamole.html#tightvnc">TightVNC</a></dt><dt id="ientry-idm46227490829120">timezone, <a class="indexterm" href="protocol-reference.html#timezone-handshake-instruction">timezone</a></dt><dt id="ientry-idm46227493533792">tokens, <a class="indexterm" href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></dt><dd><dl><dt>cas, <a class="indexterm" href="configuring-guacamole.html#cas-tokens">CAS Extension Tokens</a></dt><dt>extension-specific, <a class="indexterm" href="configuring-guacamole.html#extension-tokens">Extension-specific tokens</a></dt><dt>ldap, <a class="indexterm" href="configuring-guacamole.html#ldap-tokens">LDAP Extension Tokens</a></dt><dt>modifiers, <a class="indexterm" href="configuring-guacamole.html#token-modifiers">Token modifiers</a></dt></dl></dd><dt id="ientry-idm46227497788768">TOTP, <a class="indexterm" href="totp-auth.html">TOTP two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt></dl></dd><dt id="ientry-idm46227491141216">transfer, <a class="indexterm" href="protocol-reference.html#transfer-instruction">transfer</a></dt><dt id="ientry-idm46227491114896">transform, <a class="indexterm" href="protocol-reference.html#transform-instruction">transform</a></dt><dt id="ientry-idm46227493309968">troubleshooting, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dt id="ientry-idm46227494600416">TS gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt></dl></div><div class="indexdiv"><h3>U</h3><dl><dt id="ientry-idm46227490870816">undefine, <a class="indexterm" href="protocol-reference.html#undefine-object-instruction">undefine</a></dt><dt id="ientry-idm46227493298496">Unicode, <a class="indexterm" href="troubleshooting.html#idm46227493299264">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46227493296704">URIEncoding, <a class="indexterm" href="troubleshooting.html#idm46227493299264">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46227496057744">user group management, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46227496056848">user groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46227496090608">user management, <a class="indexterm" href="administration.html#user-management">User management</a></dt><dt id="ientry-idm46227495300160">user-mapping.xml, <a class="indexterm" href="configuring-guacamole.html#user-mapping">user-mapping.xml</a></dt><dt id="ientry-idm46227495292304">users</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#user-setup">Adding users</a></dt></dl></dd><dt id="ientry-idm46227493297600">UTF-8, <a class="indexterm" href="troubleshooting.html#idm46227493299264">Connections involving Unicode don't work</a></dt></dl></div><div class="indexdiv"><h3>V</h3><dl><dt id="ientry-idm46227490928624">video, <a class="indexterm" href="protocol-reference.html#video-stream-instruction">video</a>, <a class="indexterm" href="protocol-reference.html#video-handshake-instruction">video</a></dt><dt id="ientry-idm46227494940272">vino, <a class="indexterm" href="configuring-guacamole.html#vino">vino</a></dt><dt id="ientry-idm46227494631920">VMConnect, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V / VMConnect)</a></dt><dt id="ientry-idm46227495273632">VNC, <a class="indexterm" href="configuring-guacamole.html#vnc">VNC</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-vnc">Adding a VNC connection</a></dt><dt>clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>disable clipboard, <a class="indexterm" href="configuring-guacamole.html#vnc-disable-clipboard">Disabling clipboard access</a></dt><dt>encodings, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>listen timeout, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>mouse pointer, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>PulseAudio, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>repeater, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt><dt>retrying connections, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>reverse connection, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>sound, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a></dt><dt>wol-broadcast-addr, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-mac-addr, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-send-packet, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt>wol-wait-time, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></dd><dt id="ientry-idm46227494953264">VNC servers, <a class="indexterm" href="configuring-guacamole.html#vnc-servers">Which VNC server?</a></dt><dt id="ientry-idm46227497766880">VNC support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt id="ientry-idm46227498180896">web application, <a class="indexterm" href="guacamole-architecture.html#web-application">The web application</a></dt><dt id="ientry-idm46227497375728">WebSocket, <a class="indexterm" href="installing-guacamole.html#idm46227497376464">What about WebSocket?</a></dt><dt id="ientry-idm46227494973776">wol-broadcast-addr, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt id="ientry-idm46227494978784">wol-mac-addr, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt id="ientry-idm46227494983968">wol-send-packet, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt><dt id="ientry-idm46227494969136">wol-wait-time, <a class="indexterm" href="configuring-guacamole.html#vnc-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-wake-on-lan">Wake-on-LAN Configuration</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-wake-on-lan">Wake-on-LAN Configuration</a></dt></dl></div><div class="indexdiv"><h3>X</h3><dl><dt id="ientry-idm46227494943312">x11vnc, <a class="indexterm" href="configuring-guacamole.html#x11vnc">x11vnc</a></dt></dl></div><div class="indexdiv"><h3>Z</h3><dl><dt id="ientry-idm46227495632928">zoom, <a class="indexterm" href="using-guacamole.html#scaling-display">Scaling the display</a></dt></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Appendix B. Guacamole protocol reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/cas-auth.html b/doc/1.3.0/gug/cas-auth.html
new file mode 100644
index 0000000..242fe35
--- /dev/null
+++ b/doc/1.3.0/gug/cas-auth.html
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. CAS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="header-auth.html" title="Chapter 10. HTTP header authentication" /><link rel="next" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11. CAS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="cas-auth"></a>Chapter 11. CAS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></span></dt><dt><span class="section"><a href="cas-auth.html#completing-cas-install">Completing the installation</a></span></dt><dt><span class="section"><a href="cas-auth.html#cas-clearpass">Using CAS ClearPass</a></span></dt></dl></dd></dl></div><a id="idm46227496936624" class="indexterm"></a><p>CAS is an open-source Single Sign On (SSO) provider that allows multiple applications
+        and services to authenticate against it and brokers those authentication requests to a
+        back-end authentication provider.  This module allows Guacamole to redirect to CAS for
+        authentication and user services.  This module must be layered on top of other authentication
+        extensions that provide connection information, as it only provides user authentication.
+        </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="cas-downloading"></a>Downloading the CAS authentication extension</h2></div></div></div><p>The CAS authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The CAS authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-cas-1.3.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-cas-auth"></a>Installing CAS authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the CAS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-cas-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use CAS authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-cas-config"></a>Configuring Guacamole for CAS Authentication</h3></div></div></div><a id="idm46227497693248" class="indexterm"></a><a id="idm46227497692336" class="indexterm"></a><p>Guacamole's CAS support requires specifying two properties that describe the CAS
+                authentication server and the Guacamole deployment. These properties are
+                    <span class="emphasis"><em>absolutely required in all cases</em></span>, as they dictate how
+                Guacamole should connect to the CAS and how CAS should redirect users back to
+                Guacamole once their identity has been confirmed:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">cas-authorization-endpoint</span></span></dt><dd><p>The URL of the CAS authentication server.  This should be the full
+                            path to the base of the CAS installation.</p></dd><dt><span class="term"><span class="property">cas-redirect-uri</span></span></dt><dd><p>The URI to redirect back to upon successful authentication.  Normally
+                            this will be the full URL of your Guacamole installation.</p></dd></dl></div><p>Additional optional properties are available to control how CAS tokens are
+                processed, including whether <a class="link" href="cas-auth.html#cas-clearpass" title="Using CAS ClearPass">CAS ClearPass</a>
+                should be used and how user group memberships should be derived:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">cas-clearpass-key</span></span></dt><dd><p>If using CAS ClearPass to pass the SSO password to Guacamole, this
+                            parameter specifies the private key file to use to decrypt the password.
+                            See <a class="link" href="cas-auth.html#cas-clearpass" title="Using CAS ClearPass">the section on ClearPass</a>
+                            below.</p></dd><dt><span class="term"><span class="property">cas-group-attribute</span></span></dt><dd><p>The CAS attribute that determines group membership, typically
+                                "<span class="property">memberOf</span>". This parameter is only required if
+                            using CAS to define user group memberships. If omitted, groups aren't
+                            retrieved from CAS, and all other group-related properties for CAS are
+                            ignored.</p></dd><dt><span class="term"><span class="property">cas-group-format</span></span></dt><dd><p>The format that CAS will use for its group names. Possible values are
+                                <code class="constant">plain</code>, for groups that are simple text names,
+                            or <code class="constant">ldap</code>, for groups that are represented as LDAP
+                            DNs. If set to <code class="constant">ldap</code>, group names are always
+                            determined from the last (leftmost) attribute of the DN. If omitted,
+                                <code class="constant">plain</code> is used by default.</p><p>This property has no effect if
+                                <span class="property">cas-group-attribute</span> is not set.</p></dd><dt><span class="term"><span class="property">cas-group-ldap-base-dn</span></span></dt><dd><p>The base DN to require for LDAP-formatted CAS groups. If specified,
+                            only CAS groups beneath this DN will be included, and all other CAS
+                            groups will be ignored.</p><p>This property has no effect if <span class="property">cas-group-format</span>
+                            is not <code class="constant">ldap</code>.</p></dd><dt><span class="term"><span class="property">cas-group-ldap-attribute</span></span></dt><dd><p>The LDAP attribute to require for LDAP-formatted CAS groups. If
+                            specified, only CAS groups that use this attribute for the name of the
+                            group will be included. Note that LDAP group names are <span class="emphasis"><em>always
+                                determined from the last (leftmost) attribute of the DN</em></span>.
+                            Specifying this property will only have the effect of ignoring any
+                            groups that do not use the specified attribute to represent the group
+                            name.</p><p>This property has no effect if <span class="property">cas-group-format</span>
+                            is not <code class="constant">ldap</code>.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-cas-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before CAS authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="cas-clearpass"></a>Using CAS ClearPass</h3></div></div></div><p>CAS has a function called ClearPass that can be used to cache the password
+                used for SSO authentication and make that available to services at a later
+                time.  Configuring the CAS server for ClearPass is beyond the scope of this
+                article - more information can be found on the Apereo CAS wiki at the
+                following URL: <a class="link" href="https://apereo.github.io/cas" target="_top">
+                https://apereo.github.io/cas</a>.</p><p>Once you have CAS configured for credential caching, you need to configure
+                the service with a keypair for passing the credential securely.  The public 
+                key gets installed on the CAS server, while the private key gets configured
+                with the <span class="property">cas-clearpass-key</span> property.  The private key
+                file needs to be in RSA PKCS8 format.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. HTTP header authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 12. OpenID Connect Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/configuring-guacamole.html b/doc/1.3.0/gug/configuring-guacamole.html
new file mode 100644
index 0000000..1fae570
--- /dev/null
+++ b/doc/1.3.0/gug/configuring-guacamole.html
@@ -0,0 +1,2853 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Configuring Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" /><link rel="next" href="jdbc-auth.html" title="Chapter 6. Database authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Configuring Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="configuring-guacamole"></a>Chapter 5. Configuring Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#overriding-guacamole-home">Overriding <code class="varname">GUACAMOLE_HOME</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#user-mapping"><code class="filename">user-mapping.xml</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#vnc">VNC</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#rdp">RDP</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#ssh">SSH</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#telnet">Telnet</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#kubernetes">Kubernetes</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#parameter-prompting">Parameter prompting</a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></div><p>After installing Guacamole, you need to configure users and connections before Guacamole
+        will work. This chapter covers general configuration of Guacamole and the use of its default
+        authentication method.</p><p>Guacamole's default authentication method reads all users and connections from a single
+        file called <code class="filename">user-mapping.xml</code>. This authentication method is intended to
+        be:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Sufficient for small deployments of Guacamole.</p></li><li class="listitem"><p>A relatively-easy means of verifying that Guacamole has been properly set
+                up.</p></li></ol></div><p>Other, more complex authentication methods which use backend databases, LDAP, etc. are
+        discussed in a separate, dedicated chapters.</p><p>Regardless of the authentication method you use, Guacamole's configuration always consists
+        of two main pieces: a directory referred to as <code class="varname">GUACAMOLE_HOME</code>, which is
+        the primary search location for configuration files, and
+            <code class="filename">guacamole.properties</code>, the main configuration file used by Guacamole
+        and its extensions.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-home"></a><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</h2></div></div></div><a id="idm46227497845296" class="indexterm"></a><p><code class="varname">GUACAMOLE_HOME</code> is the name given to Guacamole's configuration
+            directory, which is located at <code class="filename">/etc/guacamole</code> by default. All
+            configuration files, extensions, etc. reside within this directory. The structure of
+                <code class="varname">GUACAMOLE_HOME</code> is rigorously defined, and consists of the
+            following optional files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole.properties</code></span></dt><dd><p>The main Guacamole configuration file. Properties within this file dictate
+                        how Guacamole will connect to <span class="package">guacd</span>, and may configure
+                        the behavior of installed authentication extensions.</p></dd><dt><span class="term"><code class="filename">logback.xml</code></span></dt><dd><p>Guacamole uses a logging system called Logback for all messages. By
+                        default, Guacamole will log to the console only, but you can change this by
+                        providing your own Logback configuration file.</p></dd><dt><span class="term"><code class="filename">extensions/</code></span></dt><dd><p>The install location for all Guacamole extensions. Guacamole will
+                        automatically load all <code class="filename">.jar</code> files within this directory
+                        on startup.</p></dd><dt><span class="term"><code class="filename">lib/</code></span></dt><dd><p>The search directory for libraries required by any Guacamole extensions.
+                        Guacamole will make the <code class="filename">.jar</code> files within this
+                        directory available to all extensions. If your extensions require additional
+                        libraries, such as database drivers, this is the proper place to put
+                        them.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="overriding-guacamole-home"></a>Overriding <code class="varname">GUACAMOLE_HOME</code></h3></div></div></div><p>If you cannot or do not wish to use <code class="filename">/etc/guacamole</code> for
+                    <code class="varname">GUACAMOLE_HOME</code>, the location can be overridden through any of
+                the following methods:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Creating a directory named <code class="filename">.guacamole</code>, within the
+                        home directory of <span class="emphasis"><em>the user running the servlet
+                            container</em></span>. This directory will automatically be used for
+                            <code class="varname">GUACAMOLE_HOME</code> if it exists.</p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the environment
+                        variable <code class="varname">GUACAMOLE_HOME</code>. <span class="emphasis"><em>Be sure to consult the
+                            documentation for your servlet container to determine how to properly
+                            set environment variables.</em></span></p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the system
+                        property <span class="property">guacamole.home</span>.</p></li></ol></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="initial-setup"></a><code class="filename">guacamole.properties</code></h2></div></div></div><a id="idm46227497356576" class="indexterm"></a><a id="idm46227497355456" class="indexterm"></a><p>The Guacamole web application uses one main configuration file called
+                <code class="filename">guacamole.properties</code>. This file is the common location for all
+            configuration properties read by Guacamole or any extension of Guacamole, including
+            authentication providers.</p><p>In previous releases, this file had to be in the classpath of your servlet container.
+            Now, the location of <code class="filename">guacamole.properties</code> can be explicitly defined
+            with environment variables or system properties, and the classpath is only used as a
+            last resort. When searching for <code class="filename">guacamole.properties</code>, Guacamole
+            will check, in order:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Within <code class="varname">GUACAMOLE_HOME</code>, as defined above.</p></li><li class="listitem"><p>The classpath of the servlet container.</p></li></ol></div><p>The <code class="filename">guacamole.properties</code> file is optional and is used to
+            configure Guacamole in situations where the defaults are insufficient, or to provide
+            additional configuration information for extensions. There are several standard
+            properties that are always available for use:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46227497347104" class="indexterm"></a><em class="parameter"><code>api-session-timeout</code></em></span></dt><dd><p>The amount of time, in minutes, to allow Guacamole sessions
+                        (authentication tokens) to remain valid despite inactivity. If omitted,
+                        Guacamole sessions will expire after 60 minutes of inactivity.</p></dd><dt><span class="term"><a id="idm46227497344064" class="indexterm"></a><em class="parameter"><code>allowed-languages</code></em></span></dt><dd><p>A comma-separated whitelist of language keys to allow as display language
+                        choices within the Guacamole interface. For example, to restrict Guacamole
+                        to only English and German, you would specify:</p><div class="informalexample"><pre class="programlisting">allowed-languages: en, de</pre></div><p>As English is the fallback language, used whenever a translation key is
+                        missing from the chosen language, English should only be omitted from this
+                        list if you are absolutely positive that no strings are missing.</p><p>The corresponding JSON of any built-in languages not listed here will
+                        still be available over HTTP, but the Guacamole interface will not use them,
+                        nor will they be used automatically based on local browser language. If
+                        omitted, all defined languages will be available.</p></dd><dt><span class="term"><a id="idm46227495361808" class="indexterm"></a><em class="parameter"><code>enable-environment-properties</code></em></span></dt><dd><p>If set to "true", Guacamole will first evaluate its environment to obtain
+                        the value for any given configuration property, before using a value specified
+                        in <code class="filename">guacamole.properties</code> or falling back to a default
+                        value. By enabling this option, you can easily override any other configuration
+                        property using an environment variable.</p><div class="informalexample"><pre class="programlisting">enable-environment-properties: true</pre></div><p>When searching for a configuration property in the environment, the name of
+                        the property is first transformed by converting all lower case characters to
+                        their upper case equivalents, and by replacing all hyphen characters (<code class="code">-</code>) with
+                        underscore characters (<code class="code">_</code>). For example, the 
+                        <em class="parameter"><code>guacd-hostname</code></em> property would be transformed to 
+                        <em class="parameter"><code>GUACD_HOSTNAME</code></em> when searching the environment.
+                    </p></dd><dt><span class="term"><a id="idm46227495354576" class="indexterm"></a><em class="parameter"><code>guacd-hostname</code></em></span></dt><dd><p>The host the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on localhost.</p></dd><dt><span class="term"><a id="idm46227495350752" class="indexterm"></a><em class="parameter"><code>guacd-port</code></em></span></dt><dd><p>The port the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on port 4822.</p></dd><dt><span class="term"><a id="idm46227495346928" class="indexterm"></a><em class="parameter"><code>guacd-ssl</code></em></span></dt><dd><p>If set to "true", Guacamole will require SSL/TLS encryption between the
+                        web application and <span class="package">guacd</span>. By default, communication
+                        between the web application and <span class="package">guacd</span> will be
+                        unencrypted.</p><p>Note that if you enable this option, you must also configure
+                            <span class="package">guacd</span> to use SSL via command line options. These
+                        options are documented in the manpage of <span class="package">guacd</span>. You will
+                        need an SSL certificate and private key.</p></dd><dt><span class="term"><a id="idm46227495341440" class="indexterm"></a><em class="parameter"><code>skip-if-unavailable</code></em></span></dt><dd><p>A comma-separated list of the identifiers of authentication providers that
+                        should be allowed to fail internally without aborting the authentication
+                        process. For example, to request that Guacamole ignore failures due to the
+                        LDAP directory or MySQL server being unexpectedly down, allowing other
+                        authentication providers to continue functioning:</p><div class="informalexample"><pre class="programlisting">skip-if-unavailable: mysql, ldap</pre></div><p>By default, Guacamole takes a conservative approach to internal failures,
+                        aborting the authentication process if an internal error occurs within any
+                        authentication provider. Depending on the nature of the error, this may mean
+                        that no users can log in until the cause of the failure is dealt with. The
+                            <em class="parameter"><code>skip-if-unavailable</code></em> property may be used to
+                        explicitly inform Guacamole that one or more underlying systems are expected
+                        to occasionally experience failures, and that other functioning systems
+                        should be relied upon if they do fail.</p></dd></dl></div><div class="example"><a id="idm46227495336432"></a><p class="title"><strong>Example 5.1. Example <code class="filename">guacamole.properties</code></strong></p><div class="example-contents"><a id="guacamole.properties"></a><pre xml:lang="en" class="programlisting" lang="en"># Hostname and port of guacamole proxy
+guacd-hostname: localhost
+guacd-port:     4822</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="webapp-logging"></a>Logging within the web application</h2></div></div></div><a id="idm46227495332544" class="indexterm"></a><p>By default, Guacamole logs all messages to the console. Servlet containers like Tomcat
+            will automatically redirect these messages to a log file,
+                <code class="filename">catalina.out</code> in the case of Tomcat, which you can read through
+            while Guacamole runs. Messages are logged at four different log levels, depending on
+            message importance and severity:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46227495329712" class="indexterm"></a><code class="constant">error</code></span></dt><dd><p>Errors are fatal conditions. An operation, described in the log message,
+                        was attempted but could not proceed, and the failure of this operation is a
+                        serious problem that needs to be addressed.</p></dd><dt><span class="term"><a id="idm46227495326352" class="indexterm"></a><code class="constant">warn</code></span></dt><dd><p>Warnings are generally non-fatal conditions. The operation continued, but
+                        encountered noteworthy problems.</p></dd><dt><span class="term"><a id="idm46227495323104" class="indexterm"></a><code class="constant">info</code></span></dt><dd><p>"Info" messages are purely informational. They may be useful or
+                        interesting to administrators, but are not generally critical to proper
+                        operation of a Guacamole server.</p></dd><dt><span class="term"><a id="idm46227495319760" class="indexterm"></a><code class="constant">debug</code></span></dt><dd><p>Debug messages are highly detailed and oriented toward development. Most
+                        debug messages will contain stack traces and internal information that is
+                        useful when investigating problems within code. It is expected that debug
+                        messages, though verbose, will not affect performance.</p></dd><dt><span class="term"><a id="idm46227495316288" class="indexterm"></a><code class="constant">trace</code></span></dt><dd><p>Trace messages are similar to debug messages in intent and verbosity, but
+                        are so low-level that they may affect performance due to their frequency.
+                        Trace-level logging is rarely necessary, and is mainly useful in providing
+                        highly detailed context around issues being investigated.</p></dd></dl></div><p>Guacamole logs messages using a logging framework called <a class="link" href="http://logback.qos.ch/" target="_top">Logback</a> and, by default, will only log messages at the
+                "<code class="constant">info</code>" level or higher. If you wish to change the log level, or
+            configure how or where Guacamole logs messages, you can do so by providing your own
+                <code class="filename">logback.xml</code> file within <code class="varname">GUACAMOLE_HOME</code>. For
+            example, to log all messages to the console, even "<code class="constant">debug</code>" messages,
+            you might use the following <code class="filename">logback.xml</code>:</p><div class="informalexample"><pre class="programlisting">&lt;configuration&gt;
+
+    &lt;!-- Appender for debugging --&gt;
+    &lt;appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender"&gt;
+        &lt;encoder&gt;
+            &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n&lt;/pattern&gt;
+        &lt;/encoder&gt;
+    &lt;/appender&gt;
+
+    &lt;!-- Log at DEBUG level --&gt;
+    &lt;root level="debug"&gt;
+        &lt;appender-ref ref="GUAC-DEBUG"/&gt;
+    &lt;/root&gt;
+
+&lt;/configuration&gt;</pre></div><p>Guacamole and the above example configure only one appender which logs to the console,
+            but Logback is extremely flexible and allows any number of appenders which can each log
+            to separate files, the console, etc. based on a number of criteria, including the log
+            level and the source of the message.</p><p>More thorough <a class="link" href="http://logback.qos.ch/manual/configuration.html" target="_top">documentation on
+                configuring Logback</a> is provided on the Logback project's web site.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-auth"></a>Using the default authentication</h2></div></div></div><a id="idm46227495304384" class="indexterm"></a><p>Guacamole's default authentication module is simple and consists of a mapping of
+            usernames to configurations. This authentication module comes with Guacamole and simply
+            reads usernames and passwords from an XML file. It is always enabled, but will only read
+            from the XML file if it exists, and is always last in priority relative to any other
+            authentication extensions.</p><p>There are other authentication modules available. The Guacamole project provides
+            database-backed authentication modules with the ability to manage connections and users
+            from the web interface, and other authentication modules can be created using the
+            extension API provided along with the Guacamole web application,
+                <span class="package">guacamole-ext</span>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping"></a><code class="filename">user-mapping.xml</code></h3></div></div></div><a id="idm46227495300160" class="indexterm"></a><p>The default authentication provider used by Guacamole reads all username,
+                password, and configuration information from a file called the "user mapping"
+                located at <code class="filename">GUACAMOLE_HOME/user-mapping.xml</code>. An example of a
+                user mapping file is included with Guacamole, and looks something like this:</p><pre class="programlisting">&lt;user-mapping&gt;
+
+    &lt;!-- Per-user authentication and config information --&gt;
+    &lt;authorize username="USERNAME" password="PASSWORD"&gt;
+        &lt;protocol&gt;vnc&lt;/protocol&gt;
+        &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+        &lt;param name="port"&gt;5900&lt;/param&gt;
+        &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+    &lt;/authorize&gt;
+
+    &lt;!-- Another user, but using md5 to hash the password
+         (example below uses the md5 hash of "PASSWORD") --&gt;
+    &lt;authorize
+            username="USERNAME2"
+            password="319f4d26e3c536b5dd871bb2c52e3178"
+            encoding="md5"&gt;
+
+        &lt;!-- First authorized connection --&gt;
+        &lt;connection name="localhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+            &lt;param name="port"&gt;5901&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+        &lt;!-- Second authorized connection --&gt;
+        &lt;connection name="otherhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;otherhost&lt;/param&gt;
+            &lt;param name="port"&gt;5900&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+    &lt;/authorize&gt;
+
+&lt;/user-mapping&gt;</pre><p>Each user is specified with a corresponding
+                    <code class="code">&lt;authorize&gt;</code> tag. This tag contains all
+                authorized connections for that user, each denoted with a
+                    <code class="code">&lt;connection&gt;</code> tag. Each
+                    <code class="code">&lt;connection&gt;</code> tag contains a corresponding
+                protocol and set of protocol-specific parameters, specified with
+                the <code class="code">&lt;protocol&gt;</code> and <code class="code">&lt;param&gt;</code> tags
+                respectively.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="user-setup"></a>Adding users</h4></div></div></div><a id="idm46227495292304" class="indexterm"></a><p>When using
+                        <code class="classname">BasicFileAuthenticationProvider</code>,
+                    username/password pairs are specified with
+                        <code class="code">&lt;authorize&gt;</code> tags, which each have a
+                        <code class="code">username</code> and <code class="code">password</code>
+                    attribute. Each <code class="code">&lt;authorize&gt;</code> tag authorizes a
+                    specific username/password pair to access all connections
+                    within the tag:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>" password="<em class="replaceable"><code>PASS</code></em>"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>In the example above, the password would be listed in
+                    plaintext. If you don't want to do this, you can also
+                    specify your password hashed with MD5:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>"
+           password="<em class="replaceable"><code>319f4d26e3c536b5dd871bb2c52e3178</code></em>"
+           encoding="md5"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>After modifying user-mapping.xml, the file will be
+                    automatically reread by Guacamole, and your changes will
+                    take effect immediately. The newly-added user will be able
+                    to log in - no restart of the servlet container is
+                    needed.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="connection-setup"></a>Adding connections to a user</h4></div></div></div><a id="idm46227495282624" class="indexterm"></a><p>To specify a connection within an
+                        <code class="code">&lt;authorize&gt;</code> tag, you can either list a
+                    single protocol and set of parameters (specified with a
+                        <code class="code">&lt;protocol&gt;</code> tag and any number of
+                        <code class="code">&lt;param&gt;</code> tags), in which case that user
+                    will have access to only one connection named "DEFAULT", or
+                    you can specify one or more connections with one or more
+                        <code class="code">&lt;connection&gt;</code> tags, each of which can be
+                    named and contains a <code class="code">&lt;protocol&gt;</code> tag and any
+                    number of <code class="code">&lt;param&gt;</code> tags.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-configuration"></a>Configuring connections</h2></div></div></div><p>Each protocol supported by Guacamole has its own set of configuration parameters.
+            These parameters typically describe the hostname and port of the remote desktop server,
+            the credentials to use when connecting, if any, and the size and color depth of the
+            display. If the protocol supports file transfer, options for enabling that functionality
+            will be provided as well.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="vnc"></a>VNC</h3></div></div></div><a id="idm46227495273632" class="indexterm"></a><p>The VNC protocol is the simplest and first protocol supported by Guacamole.
+                Although generally not as fast as RDP, many VNC servers are adequate, and VNC over
+                Guacamole tends to be faster than VNC by itself due to decreased bandwidth
+                usage.</p><p>VNC support for Guacamole is provided by the <span class="package">libguac-client-vnc</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-network-parameters"></a>Network parameters</h4></div></div></div><p>With the exception of reverse-mode VNC connections, VNC works by making
+                    outbound network connections to a particular host which runs one or more VNC
+                    servers. Each VNC server is associated with a display number, from which the
+                    appropriate port number is derived.</p><div class="informaltable"><a id="vnc-parameters"></a><a id="idm46227495268336" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46227495260672" class="indexterm"></a>The hostname or IP address of the VNC server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46227495257280" class="indexterm"></a>The port the VNC server is listening on, usually
+                                        5900 or 5900 + <em class="replaceable"><code>display number</code></em>.
+                                        For example, if your VNC server is serving display number 1
+                                        (sometimes written as <code class="constant">:1</code>), your port
+                                        number here would be 5901.</p>
+                                </td></tr><tr><td><em class="parameter"><code>autoretry</code></em></td><td>
+                                    <p><a id="idm46227495252960" class="indexterm"></a>The number of times to retry connecting before
+                                        giving up and returning an error. In the case of a reverse
+                                        connection, this is the number of times the connection
+                                        process is allowed to time out.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-authentication"></a>Authentication</h4></div></div></div><p>The VNC standard defines only password based authentication. Other
+                    authentication mechanisms exist, but are non-standard or proprietary. Guacamole
+                    currently supports both standard password-only based authentication, as well
+                    as username and password authentication.</p><div class="informaltable"><a id="idm46227495247632" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46227495239920" class="indexterm"></a>The username to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46227495236512" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-display-settings"></a>Display settings</h4></div></div></div><p>VNC servers do not allow the client to request particular display sizes, so
+                    you are at the mercy of your VNC server with respect to display width and
+                    height. However, to reduce bandwidth usage, you may request that the VNC server
+                    reduce its color depth. Guacamole will automatically detect 256-color images,
+                    but this can be guaranteed for absolutely all graphics sent over the connection
+                    by forcing the color depth to 8-bit. Color depth is otherwise dictated by the
+                    VNC server.</p><p>If you are noticing problems with your VNC display, such as the lack of a
+                    mouse cursor, the presence of multiple mouse cursors, or strange colors (such as
+                    blue colors appearing more like orange or red), these are typically the result
+                    of bugs or limitations within the VNC server, and additional parameters are
+                    available to work around such issues.</p><div class="informaltable"><a id="idm46227495230688" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46227495222976" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, 24, or 32. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>swap-red-blue</code></em></td><td>
+                                    <p>If the colors of your display appear wrong (blues appear
+                                        orange or red, etc.), it may be that your VNC server is
+                                        sending image data incorrectly, and the red and blue
+                                        components of each color are swapped. If this is the case,
+                                        set this parameter to "true" to work around the problem.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>cursor</code></em></td><td>
+                                    <p><a id="idm46227495217200" class="indexterm"></a>If set to "remote", the mouse pointer will be
+                                        rendered remotely, and the local position of the mouse
+                                        pointer will be indicated by a small dot. A remote mouse
+                                        cursor will feel slower than a local cursor, but may be
+                                        necessary if the VNC server does not support sending the
+                                        cursor image to the client.</p>
+                                </td></tr><tr><td><em class="parameter"><code>encodings</code></em></td><td>
+                                    <p><a id="idm46227495213424" class="indexterm"></a>A space-delimited list of VNC encodings to use.
+                                        The format of this parameter is dictated by libvncclient and
+                                        thus doesn't really follow the form of other Guacamole
+                                        parameters. This parameter is optional, and
+                                            <span class="package">libguac-client-vnc</span> will use any
+                                        supported encoding by default.</p>
+                                    <p>Beware that this parameter is intended to be replaced with
+                                        individual, encoding-specific parameters in a future
+                                        release.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46227495208608" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the desktop and whatever other
+                                        users using that same desktop are doing. This parameter is
+                                        optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-recording"></a>Session recording</h4></div></div></div><p>VNC sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.3.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227495188656" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46227495180944" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-sftp"></a>File transfer (via SFTP)</h4></div></div></div><p>VNC does not normally support file transfer, but Guacamole can provide file
+                    transfer over SFTP even when the remote desktop is otherwise being accessed
+                    through VNC and not SSH. If SFTP is enabled on a Guacamole VNC connection, users
+                    will be able to upload and download files as described in <a class="xref" href="using-guacamole.html" title="Chapter 16. Using Guacamole">Chapter 16, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46227495152352" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46227495144640" class="indexterm"></a><a id="idm46227495143360" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        VNC server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter should be that of a single
+                                        entry from an OpenSSH <code class="filename">known_hosts</code>
+                                        file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is
+                                        required.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-download</code></em></td><td>
+                                    <p>If set to true downloads from the remote system to
+                                        the client (browser) will be disabled. The default is
+                                        false, which means that downloads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-upload</code></em></td><td>
+                                    <p>If set to true uploads from the client (browser) to
+                                        the remote system will be disabled. The default is
+                                        false, which means that uploads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-repeater"></a>VNC Repeater</h4></div></div></div><p>There exist VNC repeaters, such as UltraVNC Repeater, which act as
+                    intermediaries or proxies, providing a single logical VNC connection which is
+                    then routed to another VNC server elsewhere. Additional parameters are required
+                    to select which VNC host behind the repeater will receive the connection.</p><div class="informaltable"><a id="idm46227495106144" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>dest-host</code></em></td><td><a id="idm46227495098736" class="indexterm"></a><a id="idm46227495097472" class="indexterm"></a><a id="idm46227495096208" class="indexterm"></a>The destination host to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr><tr><td><em class="parameter"><code>dest-port</code></em></td><td><a id="idm46227495092944" class="indexterm"></a><a id="idm46227495091680" class="indexterm"></a>The destination port to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-reverse-connections"></a>Reverse VNC connections</h4></div></div></div><p>Guacamole supports "reverse" VNC connections, where the VNC client listens for
+                    an incoming connection from the VNC server. When reverse VNC connections are
+                    used, the VNC client and server switch network roles, but otherwise function as
+                    they normally would. The VNC server still provides the remote display, and the
+                    VNC client still provides all keyboard and mouse input.</p><div class="informaltable"><a id="idm46227495086256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>reverse-connect</code></em></td><td>
+                                    <p><a id="idm46227495078544" class="indexterm"></a>Whether reverse connection should be used. If
+                                        set to "true", instead of connecting to a server at a given
+                                        hostname and port, guacd will listen on the given port for
+                                        inbound connections from a VNC server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>listen-timeout</code></em></td><td>
+                                    <p><a id="idm46227495074944" class="indexterm"></a>If reverse connection is in use, the maximum
+                                        amount of time to wait for an inbound connection from a VNC
+                                        server, in milliseconds. If blank, the default value is 5000
+                                        (five seconds).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-audio"></a>Audio support (via PulseAudio)</h4></div></div></div><p>VNC does not provide its own support for audio, but Guacamole's VNC support
+                    can obtain audio through a secondary network connection to a PulseAudio server
+                    running on the same machine as the VNC server.</p><p>Most Linux systems provide audio through a service called PulseAudio. This
+                    service is capable of communicating over the network, and if PulseAudio is
+                    configured to allow TCP connections, Guacamole can connect to your PulseAudio
+                    server and combine its audio with the graphics coming over VNC.</p><p>Configuring PulseAudio for network connections requires an additional line
+                    within the PulseAudio configuration file, usually
+                        <code class="filename">/etc/pulse/default.pa</code>:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-ip-acl=<em class="replaceable"><code>192.168.1.0/24</code></em> auth-anonymous=1</pre></div><p>This loads the TCP module for PulseAudio, configuring it to accept connections
+                    without authentication and <span class="emphasis"><em>only</em></span> from the
+                        <em class="replaceable"><code>192.168.1.0/24</code></em> subnet. You will want to replace
+                    this value with the subnet or IP address from which guacd will be connecting. It
+                    is possible to allow connections from absolutely anywhere, but beware that you
+                    should only do so if the nature of your network prevents unauthorized
+                    access:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-anonymous=1</pre></div><p>In either case, the <code class="code">auth-anonymous=1</code> parameter is strictly
+                    required. Guacamole does not currently support the cookie-based authentication
+                    used by PulseAudio for non-anonymous connections. If this parameter is omitted,
+                    Guacamole will not be able to connect to PulseAudio.</p><p>Once the PulseAudio configuration file has been modified appropriately,
+                    restart the PulseAudio service. PulseAudio should then begin listening on port
+                    4713 (the default PulseAudio port) for incoming TCP connections. You can verify
+                    this using a utility like <span class="command"><strong>netstat</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>netstat -ln | grep 4713</code></strong>
+<code class="computeroutput">tcp        0      0 0.0.0.0:4713            0.0.0.0:*               LISTEN
+tcp6       0      0 :::4713                 :::*                    LISTEN</code>
+<code class="prompt">$</code></pre></div><p>The following parameters are available for configuring the audio support for
+                    VNC:</p><div class="informaltable"><a id="idm46227495058352" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-audio</code></em></td><td>
+                                    <p><a id="idm46227495050640" class="indexterm"></a><a id="idm46227495049360" class="indexterm"></a>If set to "true", audio support will be enabled,
+                                        and a second connection for PulseAudio will be made in
+                                        addition to the VNC connection. By default, audio support
+                                        within VNC is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>audio-servername</code></em></td><td>
+                                    <p>The name of the PulseAudio server to connect to. This will
+                                        be the hostname of the computer providing audio for your
+                                        connection via PulseAudio, most likely the same as the value
+                                        given for the <em class="parameter"><code>hostname</code></em>
+                                        parameter.</p>
+                                    <p>If this parameter is omitted, the default PulseAudio
+                                        device will be used, which will be the PulseAudio server
+                                        running on the same machine as guacd.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-clipboard-encoding"></a>Clipboard encoding</h4></div></div></div><p>While Guacamole will always use UTF-8 for its own clipboard data, the VNC
+                    standard requires that clipboard data be encoded in ISO 8859-1. As most VNC
+                    servers will not accept data in any other format, Guacamole will translate
+                    between UTF-8 and ISO 8859-1 when exchanging clipboard data with the VNC server,
+                    but this behavior can be overridden with the
+                        <em class="parameter"><code>clipboard-encoding</code></em> parameter.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only clipboard encoding guaranteed to be supported by VNC
+                            servers is ISO 8859-1.</em></span> You should only override the clipboard
+                        encoding using the <em class="parameter"><code>clipboard-encoding</code></em> parameter of
+                        you are absolutely positive your VNC server supports other encodings.</p></div><div class="informaltable"><a id="idm46227495038064" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>clipboard-encoding</code></em></td><td>
+                                    <p><a id="idm46227495030352" class="indexterm"></a><a id="idm46227495029552" class="indexterm"></a>The encoding to assume for the VNC clipboard.
+                                        This parameter is optionl. By default, the standard encoding
+                                        ISO 8859-1 will be used. <span class="emphasis"><em>Only use this parameter
+                                            if you are sure your VNC server supports other encodings
+                                            beyond the standard ISO 8859-1.</em></span></p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ISO8859-1</code></span></dt><dd><p>ISO 8859-1 is the clipboard encoding mandated
+                                                  by the VNC standard, and supports only basic Latin
+                                                  characters.  Unless your VNC server specifies
+                                                  otherwise, this encoding is the only encoding
+                                                  guaranteed to work.</p></dd><dt><span class="term"><code class="constant">UTF-8</code></span></dt><dd><p>UTF-8 - the most common encoding used for
+                                                  Unicode. Using this encoding for the VNC clipboard
+                                                  violates the VNC specification, but some servers
+                                                  do support this. This parameter value should only
+                                                  be used if you know your VNC server supports this
+                                                  encoding.</p></dd><dt><span class="term"><code class="constant">UTF-16</code></span></dt><dd><p>UTF-16 - a 16-bit encoding for Unicode which
+                                                  is not as common as UTF-8, but still widely used.
+                                                  Using this encoding for the VNC clipboard violates
+                                                  the VNC specification. This parameter value should
+                                                  only be used if you know your VNC server supports
+                                                  this encoding.</p></dd><dt><span class="term"><code class="constant">CP1252</code></span></dt><dd><p>Code page 1252 - a Windows-specific encoding
+                                                  for Latin characters which is mostly a superset of
+                                                  ISO 8859-1, mapping some additional displayable
+                                                  characters onto what would otherwise be control
+                                                  characters. Using this encoding for the VNC
+                                                  clipboard violates the VNC specification. This
+                                                  parameter value should only be used if you know
+                                                  your VNC server supports this encoding.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-disable-clipboard"></a>Disabling clipboard access</h4></div></div></div><p>Guacamole provides bidirectional access to the clipboard by default for VNC
+                    connections. This behavior can be overridden on a per-connection basis with the
+                        <em class="parameter"><code>disable-copy</code></em> and <em class="parameter"><code>disable-paste</code></em>
+                    parameters.</p><div class="informaltable"><a id="idm46227495011504" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-copy</code></em></td><td>
+                                    <p><a id="idm46227495003792" class="indexterm"></a><a id="idm46227495002992" class="indexterm"></a>If set to "true", text copied within the VNC
+                                        session will not be accessible by the user at the browser
+                                        side of the Guacamole session, and will be usable only
+                                        within the remote desktop. This parameter is optional. By
+                                        default, the user will be given access to the copied
+                                        text.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-paste</code></em></td><td>
+                                    <p><a id="idm46227494999232" class="indexterm"></a><a id="idm46227494998432" class="indexterm"></a>If set to "true", text copied at the browser
+                                        side of the Guacamole session will not be accessible within
+                                        the VNC session. This parameter is optional. By default, the
+                                        user will be able to paste data from outside the browser
+                                        within the VNC session.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-wake-on-lan"></a>Wake-on-LAN Configuration</h4></div></div></div><p>Guacamole implements the support to send a "magic wake-on-lan
+                    packet" to a remote host prior to attempting to establish a
+                    connection with the host.  The below parameters control the
+                    behavior of this functionality, which is disabled by default.
+                    </p><div class="important"><h3 class="title">Important</h3><p>There are several factors that can impact the ability
+                        of Wake-on-LAN (WoL) to function correctly, many of which
+                        are outside the scope of Guacamole configuration.  If you
+                        are configuring WoL within Guacamole you should also be
+                        familiar with the other components that need to be
+                        configured in order for it to function correctly.</p></div><div class="informaltable"><a id="idm46227494991680" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>wol-send-packet</code></em></td><td>
+                                    <p><a id="idm46227494983968" class="indexterm"></a><a id="idm46227494983168" class="indexterm"></a>If set to "true", Guacamole will
+                                        attempt to send the Wake-On-LAN packet prior
+                                        to establishing a connection.  This parameter
+                                        is optional.  By default, Guacamole will
+                                        not send the WoL packet.  Enabling this
+                                        option requires that the
+                                            <em class="parameter"><code>wol-mac-addr</code></em>
+                                        parameter also be configured, otherwise
+                                        the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-mac-addr</code></em></td><td>
+                                    <p><a id="idm46227494978784" class="indexterm"></a><a id="idm46227494977984" class="indexterm"></a>This parameter configures the
+                                        MAC address that Guacamole will use in
+                                        the magic WoL packet to attempt to wake
+                                        the remote system.  If
+                                            <em class="parameter"><code>wol-send-packet</code></em>
+                                        is enabled, this parameter is required
+                                        or else the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-broadcast-addr</code></em></td><td>
+                                    <p><a id="idm46227494973776" class="indexterm"></a><a id="idm46227494972976" class="indexterm"></a>This parameter configures the
+                                        IPv4 broadcast address or IPv6 multicast
+                                        address that Guacamole will send the
+                                        WoL packet to in order to wake the host.
+                                        This parameter is optional.  If no value
+                                        is provided, the default local IPv4 broadcast
+                                        address (255.255.255.255) will be used.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-wait-time</code></em></td><td>
+                                    <p><a id="idm46227494969136" class="indexterm"></a><a id="idm46227494968336" class="indexterm"></a>By default after the WoL packet
+                                        is sent Guacamole will attempt immediately
+                                        to connect to the remote host.  It may be
+                                        desirable in certain scenarios to have
+                                        Guacamole wait before the initial connection
+                                        in order to give the remote system time to
+                                        boot.  Setting this parameter to a positive
+                                        value will cause Guacamole to wait the specified
+                                        number of seconds before attempting the initial
+                                        connection.  This parameter is optional.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-vnc"></a>Adding a VNC connection</h4></div></div></div><a id="idm46227494963824" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a VNC connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;vnc&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>5901</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    VNC to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>5901</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If your VNC server requires a password, or you wish to specify other
+                    configuration parameters (to reduce the color depth, for example), you will need
+                    to add additional <code class="code">&lt;param&gt;</code> tags accordingly.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    VNC connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-servers"></a>Which VNC server?</h4></div></div></div><a id="idm46227494953264" class="indexterm"></a><p>The choice of VNC server can make a big difference when it comes to
+                    performance, especially over slower networks. While many systems provide VNC
+                    access by default, using this is often not the fastest method.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="realvnc"></a>RealVNC or TigerVNC</h5></div></div></div><a id="idm46227494950592" class="indexterm"></a><a id="idm46227494949680" class="indexterm"></a><p>RealVNC, and its derivative TigerVNC, perform quite well. In our testing,
+                        they perform the best with Guacamole. If you are okay with having a desktop
+                        that can only be accessed via VNC, one of these is likely your best choice.
+                        Both optimize window movement and (depending on the application) scrolling,
+                        giving a very responsive user experience.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="tightvnc"></a>TightVNC</h5></div></div></div><a id="idm46227494946640" class="indexterm"></a><p>TightVNC is widely-available and performs generally as well as RealVNC or
+                        TigerVNC. If you wish to use TightVNC with Guacamole, performance should be
+                        just fine, but we highly recommend disabling its JPEG encoding. This is
+                        because images transmitted to Guacamole are always encoded losslessly as PNG
+                        images. When this operation is performed on a JPEG image, the artifacts
+                        present from JPEG's lossy compression reduce the compressibility of the
+                        image for PNG, thus leading to a slower experience overall than if JPEG was
+                        simply not used to begin with.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="x11vnc"></a>x11vnc</h5></div></div></div><a id="idm46227494943312" class="indexterm"></a><p>The main benefit of using x11vnc is that it allows you to continue using
+                        your desktop normally, while simultaneously exposing control of your desktop
+                        via VNC. Performance of x11vnc is comparable to RealVNC, TigerVNC, and
+                        TightVNC. If you need to use your desktop locally as well as via VNC, you
+                        will likely be quite happy with x11vnc.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="vino"></a>vino</h5></div></div></div><a id="idm46227494940272" class="indexterm"></a><p>vino is the VNC server that comes with the Gnome desktop environment, and
+                        is enabled if you enable "desktop sharing" via the system preferences
+                        available within Gnome. If you need to share your local desktop, we
+                        recommend using x11vnc rather vino, as it has proven more performant and
+                        feature-complete in our testing. If you don't need to share a local desktop
+                        but simply need an environment you can access remotely, using a VNC server
+                        like RealVNC, TigerVNC, or TightVNC is a better choice.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="qemu"></a>QEMU or KVM</h5></div></div></div><a id="idm46227494937024" class="indexterm"></a><a id="idm46227494936112" class="indexterm"></a><p>QEMU (and thus KVM) expose the displays of virtual machines using VNC. If
+                        you need to see the virtual monitor of your virtual machine, using this VNC
+                        connection is really your only choice. As the VNC server built into QEMU
+                        cannot be aware of higher-level operations like window movement, resizing,
+                        or scrolling, those operations will tend to be sent suboptimally, and will
+                        not be as fast as a VNC server running within the virtual machine.</p><p>If you wish to use a virtual machine for desktop access, we recommend
+                        installing a native VNC server inside the virtual machine after the virtual
+                        machine is set up. This will give a more responsive desktop.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp"></a>RDP</h3></div></div></div><a id="idm46227494931872" class="indexterm"></a><p>The RDP protocol is more complicated than VNC and was the second protocol
+                officially supported by Guacamole. RDP tends to be faster than VNC due to the use of
+                caching, which Guacamole does take advantage of.</p><p>RDP support for Guacamole is provided by the <span class="package">libguac-client-rdp</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-network-parameters"></a>Network parameters</h4></div></div></div><p>RDP connections require a hostname or IP address defining the destination
+                    machine. The RDP port is defined to be 3389, and will be this value in most
+                    cases. You only need to specify the RDP port if you are not using port
+                    3389.</p><div class="informaltable"><a id="idm46227494926848" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46227494919136" class="indexterm"></a>The hostname or IP address of the RDP server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46227494915744" class="indexterm"></a>The port the RDP server is listening on. This
+                                        parameter is optional. If this is not specified, the
+                                        standard port for RDP (3389) or Hyper-V's default port for
+                                        VMConnect (2179) will be used, depending on the security
+                                        mode selected.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-authentication"></a>Authentication and security</h4></div></div></div><p>RDP provides authentication through the use of a username, password, and
+                    optional domain. All RDP connections are encrypted.</p><p>Most RDP servers will provide a graphical login if the username, password, and
+                    domain parameters are omitted. One notable exception to this is Network Level
+                    Authentication, or NLA, which performs all authentication outside of a desktop
+                    session, and thus in the absence of a graphical interface.</p><p>Servers that require NLA can be handled by Guacamole in one of two ways. The
+                    first is to provide the username and password within the connection
+                    configuration, either via static values or by passing through the Guacamole
+                    credentials with <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> and
+                        <a class="link" href="ldap-auth.html" title="Chapter 7. LDAP authentication">
+                            LDAP support</a>. Alternatively, if credentials are not configured
+                    within the connection configuration, Guacamole will attempt to prompt the user
+                    for the credentials interactively, if the versions of both guacd and
+                    Guacamole Client in use support it. If either component does not support
+                    prompting and the credentials are not configured, NLA-based connections will
+                    fail.</p><div class="informaltable"><a id="idm46227494906784" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46227494899072" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46227494895680" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>domain</code></em></td><td>
+                                    <p><a id="idm46227494892272" class="indexterm"></a>The domain to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>security</code></em></td><td>
+                                    <p><a id="idm46227494888864" class="indexterm"></a><a id="idm46227494887584" class="indexterm"></a><a id="idm46227494886304" class="indexterm"></a>The security mode to use for the RDP connection.
+                                        This mode dictates how data will be encrypted and what type
+                                        of authentication will be performed, if any. By default, a
+                                        security mode is selected based on a negotiation process
+                                        which determines what both the client and the server
+                                        support.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">any</code></span></dt><dd><p>Automatically select the security mode based
+                                                  on the security protocols supported by both the
+                                                  client and the server. <span class="emphasis"><em>This is the
+                                                  default</em></span>.</p></dd><dt><span class="term"><code class="constant">nla</code></span></dt><dd><p>Network Level Authentication, sometimes also
+                                                  referred to as "hybrid" or CredSSP (the protocol
+                                                  that drives NLA). This mode uses TLS encryption
+                                                  and requires the username and password to be given
+                                                  in advance. Unlike RDP mode, the authentication
+                                                  step is performed before the remote desktop
+                                                  session actually starts, avoiding the need for the
+                                                  Windows server to allocate significant resources
+                                                  for users that may not be authorized.</p><p>If the versions of guacd and Guacamole Client
+                                                  in use support prompting and the username, password,
+                                                  and domain are not specified, the user will be
+                                                  interactively prompted to enter credentials to
+                                                  complete NLA and continue the connection. Otherwise,
+                                                  when prompting is not supported and credentials are
+                                                  not provided, NLA connections will fail.</p></dd><dt><span class="term"><code class="constant">nla-ext</code></span></dt><dd><p>Extended Network Level Authentication. This
+                                                  mode is identical to NLA except that an additional
+                                                  "<a class="link" href="https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/d0e560a3-25cb-4563-8bdc-6c4cc625bbfc" target="_top">Early User Authorization Result</a>" is
+                                                  required to be sent from the server to the client
+                                                  immediately after the NLA handshake is
+                                                  completed.</p></dd><dt><span class="term"><code class="constant">tls</code></span></dt><dd><p>RDP authentication and encryption implemented
+                                                  via TLS (Transport Layer Security). Also referred
+                                                  to as RDSTLS, the TLS security mode is primarily
+                                                  used in load balanced configurations where the
+                                                  initial RDP server may redirect the connection to
+                                                  a different RDP server.</p></dd><dt><span class="term"><code class="constant">vmconnect</code></span></dt><dd><p>Automatically select the security mode based
+                                                  on the security protocols supported by both the
+                                                  client and the server, limiting that negotiation
+                                                  to only the protocols known to be supported by
+                                                  <a class="link" href="configuring-guacamole.html#rdp-preconnection-pdu" title="Preconnection PDU (Hyper-V / VMConnect)">Hyper-V /
+                                                  VMConnect</a>.</p></dd><dt><span class="term"><code class="constant">rdp</code></span></dt><dd><p>Standard RDP encryption. This mode is
+                                                  generally only used for older Windows servers or
+                                                  in cases where a standard Windows login screen is
+                                                  desired. Newer versions of Windows have this mode
+                                                  disabled by default and will only accept NLA
+                                                  unless explicitly configured otherwise.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p><a id="idm46227494862640" class="indexterm"></a>If set to "true", the certificate returned by
+                                        the server will be ignored, even if that certificate cannot
+                                        be validated. This is useful if you universally trust the
+                                        server and your connection to the server, and you know that
+                                        the server's certificate cannot be validated (for example,
+                                        if it is self-signed).</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-auth</code></em></td><td>
+                                    <p><a id="idm46227494858848" class="indexterm"></a>If set to "true", authentication will be
+                                        disabled. Note that this refers to authentication that takes
+                                        place while connecting. Any authentication enforced by the
+                                        server over the remote desktop session (such as a login
+                                        dialog) will still take place. By default, authentication is
+                                        enabled and only used when requested by the server.</p>
+                                    <p>If you are using NLA, authentication must be enabled by
+                                        definition.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-session-settings"></a>Session settings</h4></div></div></div><p>RDP sessions will typically involve the full desktop environment of a normal
+                    user. Alternatively, you can manually specify a program to use instead of the
+                    RDP server's default shell, or connect to the administrative console.</p><p>Although Guacamole is independent of keyboard layout, RDP is not. This is
+                    because Guacamole represents keys based on what they <span class="emphasis"><em>do</em></span>
+                    ("press the <span class="keycap"><strong>Enter</strong></span> key"), while RDP uses identifiers based on
+                    the key's location  ("press the rightmost key in the second row"). To translate
+                    between a Guacamole key event  and an RDP key event, Guacamole must know ahead
+                    of time the keyboard layout of the RDP server.</p><p>By default, the US English qwerty keyboard will be used. If this does not
+                    match the keyboard layout of your RDP server, keys will not be properly
+                    translated, and you will need to explicitly choose a different layout in your
+                    connection settings. If your keyboard layout is not supported, please notify the
+                    Guacamole team by <a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE" target="_top">opening an issue in
+                    JIRA</a>.</p><div class="informaltable"><a id="idm46227494849184" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>client-name</code></em></td><td>
+                                    <p><a id="idm46227494841472" class="indexterm"></a>When connecting to the RDP server, Guacamole
+                                        will normally provide its own hostname as the name of the
+                                        client. If this parameter is specified, Guacamole will use
+                                        its value instead.</p>
+                                    <p>On Windows RDP servers, this value is exposed within the
+                                        session as the <code class="envar">CLIENTNAME</code> environment
+                                        variable.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console</code></em></td><td>
+                                    <p><a id="idm46227494836832" class="indexterm"></a>If set to "true", you will be connected to the
+                                        console (admin) session of the RDP server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>initial-program</code></em></td><td>
+                                    <p><a id="idm46227494833424" class="indexterm"></a>The full path to the program to run immediately
+                                        upon connecting. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-layout</code></em></td><td>
+                                    <p><a id="idm46227494830016" class="indexterm"></a><a id="idm46227494829216" class="indexterm"></a>The server-side keyboard layout. This is the
+                                        layout of the RDP server and has nothing to do with the
+                                        keyboard layout in use on the client. <span class="emphasis"><em>The
+                                            Guacamole client is independent of keyboard
+                                            layout.</em></span> The RDP protocol, however, is
+                                            <span class="emphasis"><em>not</em></span> independent of keyboard layout,
+                                        and Guacamole needs to know the keyboard layout of the
+                                        server in order to send the proper keys when a user is
+                                        typing.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">en-us-qwerty</code></span></dt><dd><p>English (US) keyboard</p></dd><dt><span class="term"><code class="constant">en-gb-qwerty</code></span></dt><dd><p>English (UK) keyboard</p></dd><dt><span class="term"><code class="constant">de-ch-qwertz</code></span></dt><dd><p>Swiss German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">de-de-qwertz</code></span></dt><dd><p>German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">fr-be-azerty</code></span></dt><dd><p>Belgian French keyboard (azerty)</p></dd><dt><span class="term"><code class="constant">fr-fr-azerty</code></span></dt><dd><p>French keyboard (azerty)</p></dd><dt><span class="term"><code class="constant">fr-ch-qwertz</code></span></dt><dd><p>Swiss French keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">hu-hu-qwertz</code></span></dt><dd><p>Hungarian keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">it-it-qwerty</code></span></dt><dd><p>Italian keyboard</p></dd><dt><span class="term"><code class="constant">ja-jp-qwerty</code></span></dt><dd><p>Japanese keyboard</p></dd><dt><span class="term"><code class="constant">pt-br-qwerty</code></span></dt><dd><p>Portuguese Brazilian keyboard</p></dd><dt><span class="term"><code class="constant">es-es-qwerty</code></span></dt><dd><p>Spanish keyboard</p></dd><dt><span class="term"><code class="constant">es-latam-qwerty</code></span></dt><dd><p>Latin American keyboard</p></dd><dt><span class="term"><code class="constant">sv-se-qwerty</code></span></dt><dd><p>Swedish keyboard</p></dd><dt><span class="term"><code class="constant">tr-tr-qwerty</code></span></dt><dd><p>Turkish-Q keyboard</p></dd><dt><span class="term"><code class="constant">failsafe</code></span></dt><dd><p>Unknown keyboard - this option sends only
+                                                  Unicode events and should work for any keyboard,
+                                                  though not necessarily all RDP servers or
+                                                  applications.</p><p>If your server's keyboard layout is not yet
+                                                  supported, this option should work in the
+                                                  meantime.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p><a id="idm46227494788576" class="indexterm"></a>The timezone that the client
+                                    should send to the server for configuring the
+                                    local time display of that server.  The
+                                    format of the timezone is in the standard
+                                    IANA key zone format, which is the format
+                                    used in UNIX/Linux.  This will be converted
+                                    by RDP into the correct format for Windows.
+                                    </p>
+                                    <p>The timezone is detected and will be
+                                    passed to the server during the handshake
+                                    phase of the connection, and may used by
+                                    protocols, like RDP, that support it.  This
+                                    parameter can be used to override the value
+                                    detected and passed during the handshake, or
+                                    can be used in situations where guacd does
+                                    not support passing the timezone parameter
+                                    during the handshake phase (guacd versions
+                                    prior to 1.3.0).</p>
+                                    <p>Support for forwarding the client
+                                    timezone varies by RDP server implementation.
+                                    For example, with Windows, support for
+                                    forwarding timezones is only present in
+                                    Windows Server with Remote Desktop Services
+                                    (RDS, formerly known as Terminal Services)
+                                    installed.  Windows Server installations in
+                                    admin mode, along with Windows workstation
+                                    versions, do not allow the timezone to be
+                                    forwarded.  Other server implementations,
+                                    for example, xrdp, may not implement this
+                                    feature at all.  Consult the documentation
+                                    for the RDP server to determine whether or
+                                    not this feature is supported.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole will automatically choose an appropriate display size for RDP
+                    connections based on the size of the browser window and the DPI of the device.
+                    The size of the display can be forced by specifying explicit width or height
+                    values.</p><p>To reduce bandwidth usage, you may also request that the server reduce its
+                    color depth. Guacamole will automatically detect 256-color images, but this can
+                    be guaranteed for absolutely all graphics sent over the connection by forcing
+                    the color depth to 8-bit. Color depth is otherwise dictated by the RDP
+                    server.</p><div class="informaltable"><a id="idm46227494779520" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46227494771808" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, or 24. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>width</code></em></td><td>
+                                    <p><a id="idm46227494768048" class="indexterm"></a>The width of the display to request, in pixels.
+                                        This parameter is optional. If this value is not specified,
+                                        the width of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>height</code></em></td><td>
+                                    <p>The height of the display to request, in pixels. This
+                                        parameter is optional. If this value is not specified, the
+                                        height of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>dpi</code></em></td><td>
+                                    <p><a id="idm46227494762192" class="indexterm"></a>The desired effective resolution of the client
+                                        display, in DPI. This parameter is optional. If this value
+                                        is not specified, the resolution and size of the client
+                                        display will be used together to determine, heuristically,
+                                        an appropriate resolution for the RDP session.</p>
+                                </td></tr><tr><td><em class="parameter"><code>resize-method</code></em></td><td>
+                                    <p><a id="idm46227494758480" class="indexterm"></a>The method to use to update the RDP server when
+                                        the width or height of the client display changes. This
+                                        parameter is optional. If this value is not specified, no
+                                        action will be taken when the client display changes
+                                        size.</p>
+                                    <p>Normally, the display size of an RDP session is constant
+                                        and can only be changed when initially connecting. As of RDP
+                                        8.1, the "Display Update" channel can be used to request
+                                        that the server change the display size. For older RDP
+                                        servers, the only option is to disconnect and reconnect with
+                                        the new size.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">display-update</code></span></dt><dd><p>Uses the "Display Update" channel added with
+                                                  RDP 8.1 to signal the server when the client
+                                                  display size has changed.</p></dd><dt><span class="term"><code class="constant">reconnect</code></span></dt><dd><p>Automatically disconnects the RDP session when
+                                                  the client display size has changed, and
+                                                  reconnects with the new size.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-recording"></a>Session recording</h4></div></div></div><p>RDP sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.3.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227494732016" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46227494724304" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-device-redirection"></a>Device redirection</h4></div></div></div><p>Device redirection refers to the use of non-display devices over RDP.
+                    Guacamole's RDP support currently allows redirection of audio, printing, and
+                    disk access, some of which require additional configuration in order to function
+                    properly.</p><p>Audio redirection will be enabled by default. If Guacamole was correctly
+                    installed, and audio redirection is supported by your RDP server, sound should
+                    play within remote connections without manual intervention.</p><p>Printing requires <span class="application">GhostScript</span> to be installed on
+                    the Guacamole server, and allows users to print arbitrary documents directly to
+                    PDF. When documents are printed to the redirected printer, the user will receive
+                    a PDF of that document within their web browser.</p><p>Guacamole provides support for file transfer over RDP by emulating a virtual
+                    disk drive. This drive will persist on the Guacamole server, confined within the
+                    drive path specified. If drive redirection is enabled on a Guacamole SSH
+                    connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 16. Using Guacamole">Chapter 16, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46227494693104" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-audio</code></em></td><td><a id="idm46227494685696" class="indexterm"></a><a id="idm46227494684912" class="indexterm"></a><a id="idm46227494684128" class="indexterm"></a>Audio is enabled by default in both the client and
+                                    in libguac-client-rdp. If you are concerned about bandwidth
+                                    usage, or sound is causing problems, you can explicitly disable
+                                    sound by setting this parameter to "true".</td></tr><tr><td><em class="parameter"><code>enable-audio-input</code></em></td><td>
+                                    <p><a id="idm46227494680720" class="indexterm"></a><a id="idm46227494679920" class="indexterm"></a><a id="idm46227494679120" class="indexterm"></a>If set to "true", audio input support
+                                        (microphone) will be enabled, leveraging the standard
+                                        "AUDIO_INPUT" channel of RDP. By default, audio input
+                                        support within RDP is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-printing</code></em></td><td>
+                                    <p><a id="idm46227494675536" class="indexterm"></a><a id="idm46227494674736" class="indexterm"></a><a id="idm46227494673936" class="indexterm"></a>Printing is disabled by default, but with
+                                        printing enabled, RDP users can print to a virtual printer
+                                        that sends a PDF containing the document printed to the
+                                        Guacamole client. Enable printing by setting this parameter
+                                        to "true".</p>
+                                    <p><span class="emphasis"><em>Printing support requires
+                                                <span class="application">GhostScript</span> to be
+                                            installed.</em></span> If
+                                            <span class="application">guacd</span> cannot find the
+                                            <code class="filename">gs</code> executable when printing, the
+                                        print attempt will fail.</p>
+                                </td></tr><tr><td><em class="parameter"><code>printer-name</code></em></td><td>
+                                    <p>The name of the redirected printer device that is passed
+                                        through to the RDP session.  This is the name that the user
+                                        will see in, for example, the Devices and Printers control
+                                        panel.</p>
+                                    <p>If printer redirection is not enabled, this option has no
+                                        effect.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-drive</code></em></td><td>
+                                    <p><a id="idm46227494665040" class="indexterm"></a><a id="idm46227494664240" class="indexterm"></a><a id="idm46227494663440" class="indexterm"></a>File transfer is disabled by default, but with
+                                        file transfer enabled, RDP users can transfer files to and
+                                        from a virtual drive which persists on the Guacamole server.
+                                        Enable file transfer support by setting this parameter to
+                                        "true".</p>
+                                    <p>Files will be stored in the directory specified by the
+                                            "<em class="parameter"><code>drive-path</code></em>" parameter, which is
+                                        required if file transfer is enabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-download</code></em></td><td>
+                                    <p>If set to true downloads from the remote server to
+                                        client (browser) will be disabled.  This includes both
+                                        downloads down via the hidden Guacamole menu, as well
+                                        as using the special "Download" folder presented to
+                                        the remote server.  The default is false, which means
+                                        that downloads will be allowed.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-upload</code></em></td><td>
+                                    <p>If set to true, uploads from the client (browser)
+                                        to the remote server location will be disabled. The
+                                        default is false, which means uploads will be allowed
+                                        if file transfer is enabled.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-name</code></em></td><td>
+                                    <p>The name of the filesystem used when passed through to
+                                        the RDP session.  This is the name that users will see in their
+                                        Computer/My Computer area along with client name (for example,
+                                        "Guacamole on Guacamole RDP"), and is also the name of the share
+                                        when accessing the special <code class="filename">\\tsclient</code>
+                                        network location.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-path</code></em></td><td>
+                                    <p>The directory on the Guacamole server in which transferred
+                                        files should be stored. This directory must be accessible by
+                                        guacd and both readable and writable by the user that runs
+                                        guacd. <span class="emphasis"><em>This parameter does not refer to a
+                                            directory on the RDP server.</em></span></p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-drive-path</code></em></td><td>
+                                    <p>If set to "true", and file transfer is enabled, the
+                                        directory specified by the <em class="parameter"><code>drive-path</code></em>
+                                        parameter will automatically be created if it does not yet
+                                        exist. Only the final directory in the path will be created
+                                        - if other directories earlier in the path do not exist,
+                                        automatic creation will fail, and an error will be
+                                        logged.</p>
+                                    <p>By default, the directory specified by the
+                                            <em class="parameter"><code>drive-path</code></em> parameter will not
+                                        automatically be created, and attempts to transfer files to
+                                        a non-existent directory will be logged as errors.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console-audio</code></em></td><td>
+                                    <p><a id="idm46227494641408" class="indexterm"></a>If set to "true", audio will be explicitly
+                                        enabled in the console (admin) session of the RDP server.
+                                        Setting this option to "true" only makes sense if the
+                                            <em class="parameter"><code>console</code></em> parameter is also set to
+                                        "true".</p>
+                                </td></tr><tr><td><em class="parameter"><code>static-channels</code></em></td><td>
+                                    <p>A comma-separated list of static channel names to open and
+                                        expose as pipes. If you wish to communicate between an
+                                        application running on the remote desktop and JavaScript,
+                                        this is the best way to do it. Guacamole will open an
+                                        outbound pipe with the name of the static channel. If
+                                        JavaScript needs to communicate back in the other direction,
+                                        it should respond by opening another pipe with the same
+                                        name.</p>
+                                    <p>Guacamole allows any number of static channels to be
+                                        opened, but protocol restrictions of RDP limit the size of
+                                        each channel name to 7 characters.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-preconnection-pdu"></a>Preconnection PDU (Hyper-V / VMConnect)</h4></div></div></div><p><a id="idm46227494633424" class="indexterm"></a><a id="idm46227494632672" class="indexterm"></a><a id="idm46227494631920" class="indexterm"></a>Some RDP servers host multiple logical RDP connections behind a
+                    single server listening on a single TCP port. To select between these logical
+                    connections, an RDP client must send the "preconnection PDU" - a message which
+                    contains values that uniquely identify the destination, referred to as the "RDP
+                    source". This mechanism is defined by the <a class="link" href="https://msdn.microsoft.com/en-us/library/cc242359.aspx" target="_top">"Session
+                        Selection Extension"</a> for the RDP protocol, and is implemented by
+                    Microsoft's Hyper-V hypervisor.</p><p>If you are using Hyper-V, you will need to specify the ID of the destination
+                    virtual machine within the <em class="parameter"><code>preconnection-blob</code></em> parameter.
+                    This value can be determined using PowerShell:</p><div class="informalexample"><pre class="screen"><code class="computeroutput"><code class="prompt">PS C:\&gt; </code></code><strong class="userinput"><code>Get-VM <em class="replaceable"><code>VirtualMachineName</code></em> | Select-Object Id
+</code></strong><code class="computeroutput">
+Id
+--
+ed272546-87bd-4db9-acba-e36e1a9ca20a
+
+
+<code class="prompt">PS C:\&gt; </code></code></pre></div><p>The preconnection PDU is intentionally generic. While its primary use is as a
+                    means for selecting virtual machines behind Hyper-V, other RDP servers may use
+                    it as well. It is up to the RDP server itself to determine whether the
+                    preconnection ID, BLOB, or both will be used, and what their values mean.</p><p><span class="emphasis"><em>If you do intend to use Hyper-V, beware that its built-in RDP server
+                        requires different parameters for authentication and Guacamole's defaults
+                        will not work.</em></span> In most cases, you will need to do the following
+                    when connecting to Hyper-V:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Specify both "<em class="parameter"><code>username</code></em>" and
+                                "<em class="parameter"><code>password</code></em>" appropriately, and set
+                                "<em class="parameter"><code>security</code></em>" to
+                            "<code class="constant">vmconnect</code>". Selecting the
+                                "<code class="constant">vmconnect</code>" security mode will configure
+                            Guacamole to automatically negotiate security modes known to be
+                            supported by Hyper-V, and will automatically select Hyper-V's default
+                            RDP port (2179).</p></li><li class="listitem"><p>If necessary, set "<em class="parameter"><code>ignore-cert</code></em>" to
+                                "<code class="constant">true</code>". Hyper-V may use a self-signed
+                            certificate.</p></li></ol></div><div class="informaltable"><a id="idm46227494617648" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>preconnection-id</code></em></td><td>
+                                    <p><a id="idm46227494609936" class="indexterm"></a>The numeric ID of the RDP source. This is a
+                                        non-negative integer value dictating which of potentially
+                                        several logical RDP connections should be used. This
+                                        parameter is optional, and is only required if the RDP
+                                        server is documented as requiring it. <span class="emphasis"><em>If using
+                                            Hyper-V, this should be left blank.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>preconnection-blob</code></em></td><td>
+                                    <p><a id="idm46227494606352" class="indexterm"></a><a id="idm46227494605552" class="indexterm"></a>An arbitrary string which identifies the RDP
+                                        source - one of potentially several logical RDP connections
+                                        hosted by the same RDP server. This parameter is optional,
+                                        and is only required if the RDP server is documented as
+                                        requiring it, such as Hyper-V. In all cases, the meaning of
+                                        this parameter is opaque to the RDP protocol itself and is
+                                        dictated by the RDP server. <span class="emphasis"><em>For Hyper-V, this will
+                                            be the ID of the destination virtual
+                                        machine.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-gateway"></a>Remote desktop gateway</h4></div></div></div><p><a id="idm46227494601168" class="indexterm"></a><a id="idm46227494600416" class="indexterm"></a>Microsoft's remote desktop server provides an additional gateway
+                    service which allows external connections to be forwarded to internal RDP
+                    servers which are otherwise not accessible. If you will be using Guacamole to
+                    connect through such a gateway, you will need to provide additional parameters
+                    describing the connection to that gateway, as well as any required
+                    credentials.</p><div class="informaltable"><a id="idm46227494598320" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>gateway-hostname</code></em></td><td>
+                                    <p><a id="idm46227494590608" class="indexterm"></a>The hostname of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. <span class="emphasis"><em>If omitted, a gateway will not be
+                                            used.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-port</code></em></td><td>
+                                    <p><a id="idm46227494587264" class="indexterm"></a>The port of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. By default, this will be "443".</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-username</code></em></td><td>
+                                    <p><a id="idm46227494584240" class="indexterm"></a>The username of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same as the user actually using the
+                                        remote desktop connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-password</code></em></td><td>
+                                    <p><a id="idm46227494581136" class="indexterm"></a>The password to provide when authenticating with
+                                        the remote desktop gateway, if a gateway is being
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-domain</code></em></td><td>
+                                    <p><a id="idm46227494578144" class="indexterm"></a>The domain of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same domain as the user actually using
+                                        the remote desktop connection.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-connection-broker"></a>Load balancing and RDP connection brokers</h4></div></div></div><p><a id="idm46227494574384" class="indexterm"></a><a id="idm46227494573632" class="indexterm"></a>If your remote desktop servers are behind a load balancer, sometimes
+                    referred to as a "connection broker" or "TS session broker", that balancer may
+                    require additional information during the connection process to determine how
+                    the incoming connection should be routed. RDP does not dictate the format of
+                    this information; it is specific to the balancer in use.</p><p>If you are using a load balancer and are unsure whether such information is
+                    required, <span class="emphasis"><em>you will need to check the documentation for your
+                        balancer</em></span>. If your balancer provides <code class="filename">.rdp</code>
+                    files for convenience, look through the contents of those files for a string
+                    field called "loadbalanceinfo", as that field is where the required
+                    information/cookie would be specified.</p><div class="informaltable"><a id="idm46227494569840" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>load-balance-info</code></em></td><td>
+                                    <p><a id="idm46227494562128" class="indexterm"></a>The load balancing information or cookie which
+                                        should be provided to the connection broker. <span class="emphasis"><em>If no
+                                            connection broker is being used, this should be left
+                                            blank.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-sftp"></a>RDP + SFTP</h4></div></div></div><p>Guacamole can provide file transfer over SFTP even when the remote desktop is
+                    otherwise being accessed through RDP and not SSH. If SFTP is enabled on a
+                    Guacamole RDP connection, users will be able to upload and download files as
+                    described in <a class="xref" href="using-guacamole.html" title="Chapter 16. Using Guacamole">Chapter 16, <em>Using Guacamole</em></a>.</p><p>This support is independent of the file transfer implemented through RDP's own
+                    "drive redirection" (RDPDR), and is particularly useful for RDP servers which do
+                    not support RDPDR.</p><div class="informaltable"><a id="idm46227494555776" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46227494548064" class="indexterm"></a><a id="idm46227494546784" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        RDP server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter is that of a single entry
+                                        from an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is optional if
+                                        a username is specified for the RDP connection. If omitted,
+                                        the value provided for the <em class="parameter"><code>username</code></em>
+                                        parameter will be use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-download</code></em></td><td>
+                                    <p>If set to true downloads from the remote system to
+                                        the client (browser) will be disabled. The default is
+                                        false, which means that downloads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-upload</code></em></td><td>
+                                    <p>If set to true uploads from the client (browser) to
+                                        the remote system will be disabled. The default is
+                                        false, which means that uploads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-disable-clipboard"></a>Disabling clipboard access</h4></div></div></div><p>Guacamole provides bidirectional access to the clipboard by default for RDP
+                    connections. This behavior can be overridden on a per-connection basis with the
+                        <em class="parameter"><code>disable-copy</code></em> and <em class="parameter"><code>disable-paste</code></em>
+                    parameters.</p><div class="informaltable"><a id="idm46227494508256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-copy</code></em></td><td>
+                                    <p><a id="idm46227494500544" class="indexterm"></a><a id="idm46227494499744" class="indexterm"></a>If set to "true", text copied within the RDP
+                                        session will not be accessible by the user at the browser
+                                        side of the Guacamole session, and will be usable only
+                                        within the remote desktop. This parameter is optional. By
+                                        default, the user will be given access to the copied
+                                        text.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-paste</code></em></td><td>
+                                    <p><a id="idm46227494495984" class="indexterm"></a><a id="idm46227494495184" class="indexterm"></a>If set to "true", text copied at the browser
+                                        side of the Guacamole session will not be accessible within
+                                        the RDP session. This parameter is optional. By default, the
+                                        user will be able to paste data from outside the browser
+                                        within the RDP session.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-perf-flags"></a>Performance flags</h4></div></div></div><p>RDP provides several flags which control the availability of features that
+                    decrease performance and increase bandwidth for the sake of aesthetics, such as
+                    wallpaper, window theming, menu effects, and smooth fonts. These features are
+                    all disabled by default within Guacamole such that bandwidth usage is minimized,
+                    but you can manually re-enable them on a per-connection basis if desired.</p><div class="informaltable"><a id="idm46227494489568" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-wallpaper</code></em></td><td>
+                                    <p><a id="idm46227494481856" class="indexterm"></a>If set to "true", enables rendering of the
+                                        desktop wallpaper. By default, wallpaper will be disabled,
+                                        such that unnecessary bandwidth need not be spent redrawing
+                                        the desktop.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-theming</code></em></td><td>
+                                    <p><a id="idm46227494478288" class="indexterm"></a>If set to "true", enables use of theming of
+                                        windows and controls. By default, theming within RDP
+                                        sessions is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-font-smoothing</code></em></td><td>
+                                    <p><a id="idm46227494474816" class="indexterm"></a><a id="idm46227494473536" class="indexterm"></a>If set to "true", text will be rendered with
+                                        smooth edges. Text over RDP is rendered with rough edges by
+                                        default, as this reduces the number of colors used by text,
+                                        and thus reduces the bandwidth required for the
+                                        connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-full-window-drag</code></em></td><td>
+                                    <p><a id="idm46227494469872" class="indexterm"></a>If set to "true", the contents of windows will
+                                        be displayed as windows are moved. By default, the RDP
+                                        server will only draw the window border while windows are
+                                        being dragged.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-desktop-composition</code></em></td><td>
+                                    <p><a id="idm46227494466288" class="indexterm"></a><a id="idm46227494465008" class="indexterm"></a>If set to "true", graphical effects such as
+                                        transparent windows and shadows will be allowed. By default,
+                                        such effects, if available, are disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-menu-animations</code></em></td><td>
+                                    <p><a id="idm46227494461504" class="indexterm"></a>If set to "true", menu open and close animations
+                                        will be allowed. Menu animations are disabled by
+                                        default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-bitmap-caching</code></em></td><td>
+                                    <p><a id="idm46227494458032" class="indexterm"></a>In certain situations, particularly with RDP server
+                                        implementations with known bugs, it is necessary to disable
+                                        RDP's built-in bitmap caching functionality.  This parameter
+                                        allows that to be controlled in a Guacamole session.  If set to
+                                        "true" the RDP bitmap cache will not be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-offscreen-caching</code></em></td><td>
+                                    <p><a id="idm46227494454288" class="indexterm"></a>RDP normally maintains caches of regions of the screen
+                                        that are current not visible in the client in order to accelerate
+                                        retrieval of those regions when they come into view.  This parameter,
+                                        when set to "true," will disable caching of those regions.  This is
+                                        usually only useful when dealing with known bugs in RDP server
+                                        implementations and should remain enabled in most circumstances.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-glyph-caching</code></em></td><td>
+                                    <p><a id="idm46227494450400" class="indexterm"></a>In addition to screen regions, RDP maintains caches of
+                                        frequently used symbols or fonts, collectively known as "glyphs."  As
+                                        with bitmap and offscreen caching, certain known bugs in RDP implementations
+                                        can cause performance issues with this enabled, and setting this parameter
+                                        to "true" will disable that glyph caching in the RDP session.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-remoteapp"></a>RemoteApp</h4></div></div></div><p>Recent versions of Windows provide a feature called RemoteApp which allows
+                    individual applications to be used over RDP, without providing access to the
+                    full desktop environment. If your RDP server has this feature enabled and
+                    configured, you can configure Guacamole connections to use those individual
+                    applications.</p><div class="informaltable"><a id="idm46227494444816" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remote-app</code></em></td><td>
+                                    <p><a id="idm46227494437104" class="indexterm"></a>Specifies the RemoteApp to start on the remote
+                                        desktop. If supported by your remote desktop server, this
+                                        application, and only this application, will be visible to
+                                        the user.</p>
+                                    <p>Windows requires a special notation for the names of
+                                        remote applications. The names of remote applications must
+                                        be prefixed with two vertical bars. For example, if you have
+                                        created a remote application on your server for
+                                            <code class="filename">notepad.exe</code> and have assigned it
+                                        the name "notepad", you would set this parameter to:
+                                        "||notepad".</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-dir</code></em></td><td>
+                                    <p>The working directory, if any, for the remote application.
+                                        This parameter has no effect if RemoteApp is not in
+                                        use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-args</code></em></td><td>
+                                    <p>The command-line arguments, if any, for the remote
+                                        application. This parameter has no effect if RemoteApp is
+                                        not in use.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-wake-on-lan"></a>Wake-on-LAN Configuration</h4></div></div></div><p>Guacamole implements the support to send a "magic wake-on-lan
+                    packet" to a remote host prior to attempting to establish a
+                    connection with the host.  The below parameters control the
+                    behavior of this functionality, which is disabled by default.
+                    </p><div class="important"><h3 class="title">Important</h3><p>There are several factors that can impact the ability
+                        of Wake-on-LAN (WoL) to function correctly, many of which
+                        are outside the scope of Guacamole configuration.  If you
+                        are configuring WoL within Guacamole you should also be
+                        familiar with the other components that need to be
+                        configured in order for it to function correctly.</p></div><div class="informaltable"><a id="idm46227494425056" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>wol-send-packet</code></em></td><td>
+                                    <p><a id="idm46227494417344" class="indexterm"></a><a id="idm46227494416544" class="indexterm"></a>If set to "true", Guacamole will
+                                        attempt to send the Wake-On-LAN packet prior
+                                        to establishing a connection.  This parameter
+                                        is optional.  By default, Guacamole will
+                                        not send the WoL packet.  Enabling this
+                                        option requires that the
+                                            <em class="parameter"><code>wol-mac-addr</code></em>
+                                        parameter also be configured, otherwise
+                                        the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-mac-addr</code></em></td><td>
+                                    <p><a id="idm46227494412160" class="indexterm"></a><a id="idm46227494411360" class="indexterm"></a>This parameter configures the
+                                        MAC address that Guacamole will use in
+                                        the magic WoL packet to attempt to wake
+                                        the remote system.  If
+                                            <em class="parameter"><code>wol-send-packet</code></em>
+                                        is enabled, this parameter is required
+                                        or else the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-broadcast-addr</code></em></td><td>
+                                    <p><a id="idm46227494407152" class="indexterm"></a><a id="idm46227494406352" class="indexterm"></a>This parameter configures the
+                                        IPv4 broadcast address or IPv6 multicast
+                                        address that Guacamole will send the
+                                        WoL packet to in order to wake the host.
+                                        This parameter is optional.  If no value
+                                        is provided, the default local IPv4 broadcast
+                                        address (255.255.255.255) will be used.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-wait-time</code></em></td><td>
+                                    <p><a id="idm46227494402512" class="indexterm"></a><a id="idm46227494401712" class="indexterm"></a>By default after the WoL packet
+                                        is sent Guacamole will attempt immediately
+                                        to connect to the remote host.  It may be
+                                        desirable in certain scenarios to have
+                                        Guacamole wait before the initial connection
+                                        in order to give the remote system time to
+                                        boot.  Setting this parameter to a positive
+                                        value will cause Guacamole to wait the specified
+                                        number of seconds before attempting the initial
+                                        connection.  This parameter is optional.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-rdp"></a>Adding an RDP connection</h4></div></div></div><a id="idm46227494397184" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a RDP connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;rdp&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>3389</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    RDP to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>3389</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the color depth, size of the screen, etc.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    RDP connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ssh"></a>SSH</h3></div></div></div><a id="idm46227494386384" class="indexterm"></a><p>Unlike VNC or RDP, SSH is a text protocol. Its implementation in Guacamole is
+                actually a combination of a terminal emulator and SSH client, because the SSH
+                protocol isn't inherently graphical. Guacamole's SSH support emulates a terminal on
+                the server side, and draws the screen of this terminal remotely on the
+                client.</p><p>SSH support for Guacamole is provided by the <span class="package">libguac-client-ssh</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-host-verification"></a>SSH Host Verification</h4></div></div></div><p>By default, Guacamole does not do any verification of host identity before
+                    establishing SSH connections.  While this may be safe for private and trusted
+                    networks, it is not ideal for large networks with unknown/untrusted systems,
+                    or for SSH connections that traverse the Internet.  The potential exists for
+                    Man-in-the-Middle (MitM) attacks when connecting to these hosts.</p><p>Guacamole includes two methods for verifying SSH (and SFTP) server identity
+                    that can be used to make sure that the host you are connecting to is a host
+                    that you know and trust.  The first method is by reading a file in
+                    <code class="varname">GUACAMOLE_HOME</code> called <code class="filename">ssh_known_hosts</code>.
+                    This file should be in the format of a standard OpenSSH known_hosts file.
+                    If the file is not present, no verification is done.  If the file is present,
+                    it is read in at connection time and remote host identities are verified
+                    against the keys present in the file.</p><p>The second method for verifying host identity is by passing a connection
+                    parameter that contains an OpenSSH known hosts entry for that specific host.
+                    The <em class="parameter"><code>host-key</code></em> parameter is used for SSH connections, 
+                    while the SFTP connections associated with RDP and VNC use the
+                    <em class="parameter"><code>sftp-host-key</code></em> parameter.  If these parameters are
+                    not present on their respective connections no host identity verification
+                    is performed.  If the parameter is present then the identity of the remote
+                    host is verified against the identity provided in the parameter before a
+                    connection is established.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-network-parameters"></a>Network parameters</h4></div></div></div><p>SSH connections require a hostname or IP address defining the destination
+                    machine. SSH is standardized to use port 22 and this will be the proper value in
+                    most cases. You only need to specify the SSH port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46227494375120" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46227494367408" class="indexterm"></a>The hostname or IP address of the SSH server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46227494364016" class="indexterm"></a>The port the SSH server is listening on, usually
+                                        22. This parameter is optional. If this is not specified,
+                                        the default of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>host-key</code></em></td><td>
+                                    <p><a id="idm46227494360512" class="indexterm"></a>The known hosts entry for the SSH server.  This
+                                            parameter is optional, and, if not provided, no verification
+                                            of host identity will be done.  If the parameter is
+                                            provided the identity of the server will be checked
+                                            against the data.</p>
+                                    <p>The format of this parameter is that of a single entry from
+                                        an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-alive-interval</code></em></td><td>
+                                    <p>
+                                        <a id="idm46227494354592" class="indexterm"></a>
+                                        By default the SSH client does not send keepalive requests
+                                        to the server.  This parameter allows you to configure the
+                                        the interval in seconds at which the client connection
+                                        sends keepalive packets to the server.  The default is 0,
+                                        which disables sending the packets.  The minimum value
+                                        is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-authentication"></a>Authentication</h4></div></div></div><p>SSH provides authentication through passwords and public key
+                    authentication, and also supports the NONE method.</p><p>SSH NONE authentication is seen occasionally in appliances
+                    and items like network or SAN fabric switches.  Generally
+                    for this authentication method you need only provide a
+                    username.</p><p>For Guacamole to use public key authentication, it must have access to your
+                    private key and, if applicable, its passphrase. If the private key requires a
+                    passphrase, but no passphrase is provided, you will be prompted for the
+                    passphrase upon connecting.</p><p>If no private key is provided, Guacamole will attempt to authenticate using a
+                    password, reading that password from the connection parameters, if provided, or
+                    by prompting the user directly.</p><div class="informaltable"><a id="idm46227494347712" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46227494340000" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, you will be
+                                        prompted for the username upon connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46227494336496" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If not
+                                        specified, you will be prompted for your password upon
+                                        connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>private-key</code></em></td><td>
+                                    <p><a id="idm46227494332928" class="indexterm"></a>The entire contents of the private key to use
+                                        for public key authentication. If this parameter is not
+                                        specified, public key authentication will not be used. The
+                                        private key must be in OpenSSH format, as would be generated
+                                        by the OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>passphrase</code></em></td><td>
+                                    <p><a id="idm46227494328784" class="indexterm"></a>The passphrase to use to decrypt the private key
+                                        for use in public key authentication. This parameter is not
+                                        needed if the private key does not require a passphrase. If
+                                        the private key requires a passphrase, but this parameter is
+                                        not provided, the user will be prompted for the passphrase
+                                        upon connecting.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's SSH support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46227494322672" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46227494314960" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by SSH connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46227494281392" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-command"></a>Running a command (instead of a shell)</h4></div></div></div><p>By default, SSH sessions will start an interactive shell. The shell which will
+                    be used is determined by the SSH server, normally by reading the user's default
+                    shell previously set with <span class="command"><strong>chsh</strong></span> or within
+                        <code class="filename">/etc/passwd</code>. If you wish to override this and instead
+                    run a specific command, you can do so by specifying that command in the
+                    configuration of the Guacamole SSH connection.</p><div class="informaltable"><a id="idm46227494270640" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>command</code></em></td><td>
+                                    <p><a id="idm46227494262928" class="indexterm"></a>The command to execute over the SSH session, if
+                                        any. This parameter is optional. If not specified, the SSH
+                                        session will use the user's default shell.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227494260112"></a>Internationalization/Locale settings</h4></div></div></div><p>The language of the session is normally set by the SSH server. If the SSH
+                    server allows the relevant environment variable to be set, the language can be
+                    overridden on a per-connection basis.</p><div class="informaltable"><a id="idm46227494258144" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>locale</code></em></td><td>
+                                    <p><a id="idm46227494250432" class="indexterm"></a>The specific locale to request for the SSH
+                                        session. This parameter is optional and may be any value
+                                        accepted by the <code class="envar">LANG</code> environment variable of
+                                        the SSH server. If not specified, the SSH server's default
+                                        locale will be used.</p>
+                                    <p>As this parameter is sent to the SSH server using the
+                                            <code class="envar">LANG</code> environment variable, the parameter
+                                        will only have an effect if the SSH server allows the
+                                            <code class="envar">LANG</code> environment variable to be set by
+                                        SSH clients.</p>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p>
+                                        <a id="idm46227494244480" class="indexterm"></a>This parameter allows you
+                                        to control the timezone that is sent
+                                        to the server over the SSH connection,
+                                        which will change the way local time is
+                                        displayed on the server.</p>
+                                    <p>
+                                        The mechanism used to do this over SSH
+                                        connections is by setting the
+                                        <code class="envar">TZ</code> variable on the SSH
+                                        connection to the timezone specified by
+                                        this parameter.  This means that the SSH
+                                        server must allow the <code class="envar">TZ</code>
+                                        variable to be set/overriden - many SSH
+                                        server implementations have this disabled
+                                        by default.  To get this to work, you may
+                                        need to modify the configuration of the
+                                        SSH server and explicitly allow for
+                                        <code class="envar">TZ</code> to be set/overriden.
+                                    </p>
+                                    <p>
+                                        The available values of this parameter are
+                                        standard IANA key zone format timezones,
+                                        and the value will be sent directly to
+                                        the server in this format.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46227494235536" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46227494227824" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46227494223904" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the SSH server. This parameter is
+                                        optional. If not specified, "<code class="code">linux</code>"
+                                        is used as the terminal emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ssh-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate an SSH session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the SSH connection using
+                        the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the SSH session, as if typed by
+                        the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of SSH sessions, including timing information, can
+                    be recorded automatically to a specified directory. This recording, also known
+                    as a "typescript", will be written to two files within the directory specified
+                    by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227494201552" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46227494193840" class="indexterm"></a><a id="idm46227494192560" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, SSH sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.3.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227494159024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46227494151312" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-sftp"></a>SFTP</h4></div></div></div><p>Guacamole provides support for file transfer over SSH using SFTP, the file
+                    transfer protocol built into most SSH servers. If SFTP is enabled on a Guacamole
+                    SSH connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 16. Using Guacamole">Chapter 16, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46227494122784" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46227494115072" class="indexterm"></a><a id="idm46227494113792" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the SSH server using SFTP. Guacamole includes the
+                                            <span class="command"><strong>guacctl</strong></span> utility which controls file
+                                        downloads and uploads when run on the SSH server by the user
+                                        over the SSH connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-download</code></em></td><td>
+                                    <p>If set to true downloads from the remote system to
+                                        the client (browser) will be disabled. The default is
+                                        false, which means that downloads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-disable-upload</code></em></td><td>
+                                    <p>If set to true uploads from the client (browser) to
+                                        the remote system will be disabled. The default is
+                                        false, which means that uploads will be enabled.</p>
+                                    <p>If sftp is not enabled, this parameter will be
+                                        ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-disable-clipboard"></a>Disabling clipboard access</h4></div></div></div><p>Guacamole provides bidirectional access to the terminal clipboard by default
+                    for SSH connections. This behavior can be overridden on a per-connection basis
+                    with the <em class="parameter"><code>disable-copy</code></em> and
+                        <em class="parameter"><code>disable-paste</code></em> parameters.</p><div class="informaltable"><a id="idm46227494098944" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-copy</code></em></td><td>
+                                    <p><a id="idm46227494091232" class="indexterm"></a><a id="idm46227494090432" class="indexterm"></a>If set to "true", text copied within the SSH
+                                        session will not be accessible by the user at the browser
+                                        side of the Guacamole session, and will be usable only
+                                        within the terminal. This parameter is optional. By default,
+                                        the user will be given access to the copied text.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-paste</code></em></td><td>
+                                    <p><a id="idm46227494086720" class="indexterm"></a><a id="idm46227494085920" class="indexterm"></a>If set to "true", text copied at the browser
+                                        side of the Guacamole session will not be accessible within
+                                        the SSH session. This parameter is optional. By default, the
+                                        user will be able to paste data from outside the browser
+                                        within the terminal.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-wake-on-lan"></a>Wake-on-LAN Configuration</h4></div></div></div><p>Guacamole implements the support to send a "magic wake-on-lan
+                    packet" to a remote host prior to attempting to establish a
+                    connection with the host.  The below parameters control the
+                    behavior of this functionality, which is disabled by default.
+                    </p><div class="important"><h3 class="title">Important</h3><p>There are several factors that can impact the ability
+                        of Wake-on-LAN (WoL) to function correctly, many of which
+                        are outside the scope of Guacamole configuration.  If you
+                        are configuring WoL within Guacamole you should also be
+                        familiar with the other components that need to be
+                        configured in order for it to function correctly.</p></div><div class="informaltable"><a id="idm46227494079168" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>wol-send-packet</code></em></td><td>
+                                    <p><a id="idm46227494071456" class="indexterm"></a><a id="idm46227494070656" class="indexterm"></a>If set to "true", Guacamole will
+                                        attempt to send the Wake-On-LAN packet prior
+                                        to establishing a connection.  This parameter
+                                        is optional.  By default, Guacamole will
+                                        not send the WoL packet.  Enabling this
+                                        option requires that the
+                                            <em class="parameter"><code>wol-mac-addr</code></em>
+                                        parameter also be configured, otherwise
+                                        the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-mac-addr</code></em></td><td>
+                                    <p><a id="idm46227494066272" class="indexterm"></a><a id="idm46227494065472" class="indexterm"></a>This parameter configures the
+                                        MAC address that Guacamole will use in
+                                        the magic WoL packet to attempt to wake
+                                        the remote system.  If
+                                            <em class="parameter"><code>wol-send-packet</code></em>
+                                        is enabled, this parameter is required
+                                        or else the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-broadcast-addr</code></em></td><td>
+                                    <p><a id="idm46227494061264" class="indexterm"></a><a id="idm46227494060464" class="indexterm"></a>This parameter configures the
+                                        IPv4 broadcast address or IPv6 multicast
+                                        address that Guacamole will send the
+                                        WoL packet to in order to wake the host.
+                                        This parameter is optional.  If no value
+                                        is provided, the default local IPv4 broadcast
+                                        address (255.255.255.255) will be used.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-wait-time</code></em></td><td>
+                                    <p><a id="idm46227494056624" class="indexterm"></a><a id="idm46227494055824" class="indexterm"></a>By default after the WoL packet
+                                        is sent Guacamole will attempt immediately
+                                        to connect to the remote host.  It may be
+                                        desirable in certain scenarios to have
+                                        Guacamole wait before the initial connection
+                                        in order to give the remote system time to
+                                        boot.  Setting this parameter to a positive
+                                        value will cause Guacamole to wait the specified
+                                        number of seconds before attempting the initial
+                                        connection.  This parameter is optional.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-ssh"></a>Adding an SSH connection</h4></div></div></div><a id="idm46227494051232" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a SSH connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;ssh&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>22</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    SSH to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>22</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the font.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="telnet"></a>Telnet</h3></div></div></div><a id="idm46227494040784" class="indexterm"></a><p>Telnet is a text protocol and provides similar functionality to SSH. By nature, it
+                is not encrypted, and does not provide support for file transfer. As far as graphics
+                are concerned, Guacamole's telnet support works in the same manner as SSH: it
+                emulates a terminal on the server side which renders to the Guacamole client's
+                display.</p><p>Telnet support for Guacamole is provided by the
+                    <span class="package">libguac-client-telnet</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-network-parameters"></a>Network parameters</h4></div></div></div><p>Telnet connections require a hostname or IP address defining the destination
+                    machine. Telnet is standardized to use port 23 and this will be the proper value
+                    in most cases. You only need to specify the telnet port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46227494035408" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46227494027744" class="indexterm"></a>The hostname or IP address of the telnet server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46227494024352" class="indexterm"></a>The port the telnet server is listening on,
+                                        usually 23. This parameter is optional. If this is not
+                                        specified, the default of 23 will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-authentication"></a>Authentication</h4></div></div></div><p>Telnet does not actually provide any standard means of authentication.
+                    Authentication over telnet depends entirely on the login process running on the
+                    server and is interactive. To cope with this, Guacamole provides non-standard
+                    mechanisms for automatically passing the username and entering password. Whether
+                    these mechanisms work depends on specific login process used by your telnet
+                    server.</p><p>The de-facto method for passing the username automatically via telnet is to
+                    submit it via the <code class="envar">USER</code> environment variable, sent using the
+                        <code class="methodname">NEW-ENVIRON</code> option. This is the mechanism used by
+                    most telnet clients, typically via the <code class="option">-l</code> command-line
+                    option.</p><p>Passwords cannot typically be sent automatically - at least not as reliably as
+                    the username. There is no <code class="envar">PASSWORD</code> environment variable (this
+                    would actually be a horrible idea) nor any similar mechanism for passing the
+                    password to the telnet login process, and most telnet clients provide no
+                    built-in support for automatically entering the password. The best that can be
+                    done is to heuristically detect the password prompt, and type the password on
+                    behalf of the user when the prompt appears. The prescribed method for doing this
+                    with a traditional command-line telnet is to use a utility like
+                        <span class="command"><strong>expect</strong></span>. Guacamole provides similar functionality by
+                    searching for the password prompt with a regular expression.</p><p>If Guacamole receives a line of text which matches the regular expression, the
+                    password is automatically sent. If no such line is ever received, the password
+                    is not sent, and the user must type the password manually. Pressing any key
+                    during this process cancels the heuristic password prompt detection.</p><p>If the password prompt is not being detected properly, you can try using your
+                    own regular expression by specifying it within the
+                        <em class="parameter"><code>password-regex</code></em> parameter. The regular expression must
+                    be written in the POSIX ERE dialect (the dialect typically used by
+                        <span class="command"><strong>egrep</strong></span>).</p><div class="informaltable"><a id="idm46227494012288" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46227494004576" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, or not
+                                        supported by the telnet server, the login process on the
+                                        telnet server will prompt you for your credentials. For this
+                                        to work, your telnet server must support the
+                                            <code class="methodname">NEW-ENVIRON</code> option, and the
+                                        telnet login process must pay attention to the
+                                            <code class="envar">USER</code> environment variable. Most telnet
+                                        servers satisfy this criteria.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46227493999712" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If
+                                        specified, your password will be typed on your behalf when
+                                        the password prompt is detected.</p>
+                                </td></tr><tr><td><em class="parameter"><code>username-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        username prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>password-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        password prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-success-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has succeeded. This parameter is optional. If
+                                        specified, the terminal display will not be shown to the
+                                        user until text matching this regular expression has been
+                                        received from the telnet server. The regular expression must
+                                        be written in the POSIX ERE dialect (the dialect typically
+                                        used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-failure-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has failed. This parameter is optional. If
+                                        specified, the connection will be closed with an explicit
+                                        login failure error if text matching this regular expression
+                                        has been received from the telnet server. The regular
+                                        expression must be written in the POSIX ERE dialect (the
+                                        dialect typically used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's telnet support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46227493981888" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46227493974176" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by telnet connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46227493940608" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46227493930784" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46227493923072" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46227493919152" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the telnet server. This parameter
+                                        is optional. If not specified,
+                                        "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="telnet-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate a telnet session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the telnet connection
+                        using the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the telnet session, as if typed
+                        by the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of telnet sessions, including timing information,
+                    can be recorded automatically to a specified directory. This recording, also
+                    known as a "typescript", will be written to two files within the directory
+                    specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227493896688" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46227493888976" class="indexterm"></a><a id="idm46227493887696" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, telnet sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.3.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227493854096" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46227493846384" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-disable-clipboard"></a>Disabling clipboard access</h4></div></div></div><p>Guacamole provides bidirectional access to the terminal clipboard by default
+                    for telnet connections. This behavior can be overridden on a per-connection
+                    basis with the <em class="parameter"><code>disable-copy</code></em> and
+                        <em class="parameter"><code>disable-paste</code></em> parameters.</p><div class="informaltable"><a id="idm46227493817552" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-copy</code></em></td><td>
+                                    <p><a id="idm46227493809840" class="indexterm"></a><a id="idm46227493809040" class="indexterm"></a>If set to "true", text copied within the telnet
+                                        session will not be accessible by the user at the browser
+                                        side of the Guacamole session, and will be usable only
+                                        within the terminal. This parameter is optional. By default,
+                                        the user will be given access to the copied text.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-paste</code></em></td><td>
+                                    <p><a id="idm46227493805328" class="indexterm"></a><a id="idm46227493804528" class="indexterm"></a>If set to "true", text copied at the browser
+                                        side of the Guacamole session will not be accessible within
+                                        the telnet session. This parameter is optional. By default,
+                                        the user will be able to paste data from outside the browser
+                                        within the terminal.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-wake-on-lan"></a>Wake-on-LAN Configuration</h4></div></div></div><p>Guacamole implements the support to send a "magic wake-on-lan
+                    packet" to a remote host prior to attempting to establish a
+                    connection with the host.  The below parameters control the
+                    behavior of this functionality, which is disabled by default.
+                    </p><div class="important"><h3 class="title">Important</h3><p>There are several factors that can impact the ability
+                        of Wake-on-LAN (WoL) to function correctly, many of which
+                        are outside the scope of Guacamole configuration.  If you
+                        are configuring WoL within Guacamole you should also be
+                        familiar with the other components that need to be
+                        configured in order for it to function correctly.</p></div><div class="informaltable"><a id="idm46227493797712" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>wol-send-packet</code></em></td><td>
+                                    <p><a id="idm46227493790000" class="indexterm"></a><a id="idm46227493789200" class="indexterm"></a>If set to "true", Guacamole will
+                                        attempt to send the Wake-On-LAN packet prior
+                                        to establishing a connection.  This parameter
+                                        is optional.  By default, Guacamole will
+                                        not send the WoL packet.  Enabling this
+                                        option requires that the
+                                            <em class="parameter"><code>wol-mac-addr</code></em>
+                                        parameter also be configured, otherwise
+                                        the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-mac-addr</code></em></td><td>
+                                    <p><a id="idm46227493784816" class="indexterm"></a><a id="idm46227493784016" class="indexterm"></a>This parameter configures the
+                                        MAC address that Guacamole will use in
+                                        the magic WoL packet to attempt to wake
+                                        the remote system.  If
+                                            <em class="parameter"><code>wol-send-packet</code></em>
+                                        is enabled, this parameter is required
+                                        or else the WoL packet will not be sent.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-broadcast-addr</code></em></td><td>
+                                    <p><a id="idm46227493779808" class="indexterm"></a><a id="idm46227493779008" class="indexterm"></a>This parameter configures the
+                                        IPv4 broadcast address or IPv6 multicast
+                                        address that Guacamole will send the
+                                        WoL packet to in order to wake the host.
+                                        This parameter is optional.  If no value
+                                        is provided, the default local IPv4 broadcast
+                                        address (255.255.255.255) will be used.
+                                    </p>
+                                </td></tr><tr><td><em class="parameter"><code>wol-wait-time</code></em></td><td>
+                                    <p><a id="idm46227493775168" class="indexterm"></a><a id="idm46227493774368" class="indexterm"></a>By default after the WoL packet
+                                        is sent Guacamole will attempt immediately
+                                        to connect to the remote host.  It may be
+                                        desirable in certain scenarios to have
+                                        Guacamole wait before the initial connection
+                                        in order to give the remote system time to
+                                        boot.  Setting this parameter to a positive
+                                        value will cause Guacamole to wait the specified
+                                        number of seconds before attempting the initial
+                                        connection.  This parameter is optional.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-telnet"></a>Adding a telnet connection</h4></div></div></div><a id="idm46227493769840" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a telnet connection to a particular user, you need to locate
+                    the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;telnet&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>23</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    telnet to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>23</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>As telnet is inherently insecure compared to SSH, you should use SSH instead
+                    wherever possible. If Guacamole is set up to use HTTPS then communication with
+                    the Guacamole <span class="emphasis"><em>client</em></span> will be encrypted, but communication
+                    between guacd and the telnet server will still be unencrypted. You should not
+                    use telnet unless the network between guacd and the telnet server is
+                    trusted.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="kubernetes"></a>Kubernetes</h3></div></div></div><a id="idm46227493759744" class="indexterm"></a><p>Kubernetes provides an API for attaching to the console of a container over the
+                network. As with SSH and telnet, Guacamole's Kubernetes support emulates a terminal
+                on the server side which renders to the Guacamole client's display.</p><p>Kubernetes support for Guacamole is provided by the
+                    <span class="package">libguac-client-kubernetes</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-network-parameters"></a>Network/Container parameters</h4></div></div></div><p>Attaching to a Kubernetes container requires the hostname or IP address of the
+                    Kubernetes server and the name of the pod containing the container in question.
+                    By default, Guacamole will attach to the first container in the pod. If there
+                    are multiple containers in the pod, you may wish to also specify the container
+                    name.</p><div class="informaltable"><a id="idm46227493754496" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46227493746784" class="indexterm"></a>The hostname or IP address of the Kubernetes
+                                        server that Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46227493743376" class="indexterm"></a>The port the Kubernetes server is listening on
+                                        for API connections. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, port 8080 will be used
+                                        by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>namespace</code></em></td><td>
+                                    <p><a id="idm46227493739424" class="indexterm"></a>The name of the Kubernetes namespace of the pod
+                                        containing the container being attached to. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the
+                                        namespace "default" will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>pod</code></em></td><td>
+                                    <p><a id="idm46227493735440" class="indexterm"></a>The name of the Kubernetes pod containing with
+                                        the container being attached to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>container</code></em></td><td>
+                                    <p><a id="idm46227493732048" class="indexterm"></a>The name of the container to attach to.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the first container in the pod will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-authentication"></a>Authentication and SSL/TLS</h4></div></div></div><p>If enabled, Kubernetes uses SSL/TLS for both encryption and authentication.
+                    Standard SSL/TLS client authentication requires both a client certificate and
+                    client key, which Guacamole will use to identify itself to the Kubernetes
+                    server. If the certificate used by Kubernetes is self-signed or signed by a
+                    non-standard certificate authority, the certificate for the certificate
+                    authority will also be needed.</p><div class="informaltable"><a id="idm46227493726176" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>use-ssl</code></em></td><td>
+                                    <p>If set to "true", SSL/TLS will be used to connect to the
+                                        Kubernetes server. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS will not be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-cert</code></em></td><td>
+                                    <p>The certificate to use if performing SSL/TLS client
+                                        authentication to authenticate with the Kubernetes server,
+                                        in PEM format. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, SSL client
+                                        authentication will not be performed.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-key</code></em></td><td>
+                                    <p>The key to use if performing SSL/TLS client authentication
+                                        to authenticate with the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, SSL client authentication will not be
+                                        performed</p>
+                                </td></tr><tr><td><em class="parameter"><code>ca-cert</code></em></td><td>
+                                    <p>The certificate of the certificate authority that signed
+                                        the certificate of the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, verification of the Kubernetes server certificate
+                                        will use only system-wide certificate authorities. </p>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p>If set to "true", the validity of the SSL/TLS certificate
+                                        used by the Kubernetes server will be ignored if it cannot
+                                        be validated. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS certificates
+                                        are validated.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's Kubernetes support provides a display, but not in the same sense
+                    as a remote desktop protocol like VNC or RDP. The display is a terminal
+                    emulator, and thus provides options for configuring the font used and its size.
+                    In this case, <span class="emphasis"><em>the chosen font must be installed on the
+                        server</em></span>, as it is the server that will handle rendering of
+                    characters to the terminal display, not the client.</p><div class="informaltable"><a id="idm46227493702128" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46227493694464" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by Kubernetes connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a value
+                                        to a color in the terminal emulator palette. For example, to
+                                        use blue text on white background by default, and change the
+                                        red color to a purple shade, you would specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                  on the Xterm 256-color palette. For example,
+                                                  <code class="code">color9</code> refers to the red color.
+                                                </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                  each component in hexadecimal. For example,
+                                                  <code class="code">rgb:ff/00/00</code> specifies the color red.
+                                                  Note that each hexadecimal component can be one to
+                                                  four digits, but the effective values are always
+                                                  zero-extended or truncated to two digits; for
+                                                  example, <code class="code">rgb:f/8/0</code>,
+                                                  <code class="code">rgb:f0/80/00</code>, and
+                                                  <code class="code">rgb:f0f/808/00f</code> all refer to the same
+                                                  effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                  <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                  palette. For example, <code class="code">color9</code>
+                                                  specifies the current red color. Note that the
+                                                  color value is used rather than the color
+                                                  reference, so if <code class="code">color9</code> is changed
+                                                  later in the color scheme configuration, that new
+                                                  color will not be reflected in this
+                                                  assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46227493660944" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46227493655248" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the console of the Kubernetes
+                                        container. <span class="emphasis"><em>This parameter is optional.</em></span>
+                                        If omitted, the connection will not be read-only.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p><a id="idm46227493651120" class="indexterm"></a>The maximum number of rows to allow within the
+                                        terminal scrollback buffer. This parameter is optional. If
+                                        not specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems
+                    other than Linux, the terminal behavior may need to be tweaked to allow it to
+                    operate properly. The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46227493645712" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46227493638000" class="indexterm"></a>This parameter controls the ASCII code that the
+                                        backspace key sends to the remote system. Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control
+                                        characters (often either ^? or ^H) instead of seeing the
+                                        text erased, you may need to adjust this parameter. By
+                                        default the terminal sends ASCII code 127 (Delete) if this
+                                        option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46227493634032" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the Kubernetes server. This
+                                        parameter is optional. If not specified,
+                                            "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of Kubernetes sessions, including timing
+                    information, can be recorded automatically to a specified directory. This
+                    recording, also known as a "typescript", will be written to two files within the
+                    directory specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227493619552" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46227493611840" class="indexterm"></a><a id="idm46227493610560" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, Kubernetes sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.3.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46227493577024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46227493569312" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-kubernetes"></a>Adding a Kubernetes connection</h4></div></div></div><a id="idm46227493542624" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a Kubernetes connection to a particular user, you need to
+                    locate the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;kubernetes&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="pod"&gt;<em class="replaceable"><code>mypod</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will
+                    connect to the Kubernetes server running on <em class="replaceable"><code>localhost</code></em>
+                    and attach to the first container of the pod
+                    <em class="replaceable"><code>mypod</code></em>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parameter-tokens"></a>Parameter tokens</h3></div></div></div><a id="idm46227493533792" class="indexterm"></a><p>The values of connection parameters can contain "tokens" which will be replaced by
+                Guacamole when used. These tokens allow the values of connection parameters to vary
+                dynamically by the user using the connection, and provide a simple means of
+                forwarding authentication information without storing that information in the
+                connection configuration itself, so long as the remote desktop connection uses the
+                same credentials as Guacamole.</p><p>Each token is of the form <code class="varname">${<em class="replaceable"><code>TOKEN_NAME</code></em>}</code> or 
+                    <code class="varname">${<em class="replaceable"><code>TOKEN_NAME</code></em>:<em class="replaceable"><code>MODIFIER</code></em>}</code>,
+                where <em class="replaceable"><code>TOKEN_NAME</code></em> is some descriptive name for the value the
+                token represents, and the optional <em class="replaceable"><code>MODIFIER</code></em> is one of the
+                modifiers documented below to dynamically modify the token. Tokens with no corresponding
+                value will never be replaced, but should you need such text within your connection
+                parameters, and wish to guarantee that this text will not be replaced with a token value,
+                you can escape the token by adding an additional leading "$", as in "$${TOKEN_NAME}".</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="varname">${GUAC_USERNAME}</code></span></dt><dd><p>The username of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the username
+                            they provided when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_PASSWORD}</code></span></dt><dd><p>The password of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the password
+                            they used when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_ADDRESS}</code></span></dt><dd><p>The IPv4 or IPv6 address of the current Guacamole user. This will be
+                            the address of the client side of the HTTP connection to the Guacamole
+                            server at the time the current user logged in.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_HOSTNAME}</code></span></dt><dd><p>The hostname of the current Guacamole user. This will be the hostname
+                            of the client side of the HTTP connection to the Guacamole server at the
+                            time the current user logged in. If no such hostname can be determined,
+                            the IPv4 or IPv6 address will be used instead, and this token will be
+                            equivalent to <code class="varname">${GUAC_CLIENT_ADDRESS}</code>.</p></dd><dt><span class="term"><code class="varname">${GUAC_DATE}</code></span></dt><dd><p>The current date in the local time zone of the Guacamole server. This
+                            will be written in "YYYYMMDD" format, where "YYYY" is the year, "MM" is
+                            the month number, and "DD" is the day of the month, all zero-padded.
+                            When a user accesses a connection, this token will be dynamically
+                            replaced with the date that the connection began.</p></dd><dt><span class="term"><code class="varname">${GUAC_TIME}</code></span></dt><dd><p>The current time in the local time zone of the Guacamole server. This
+                            will be written in "HHMMSS" format, where "HH" is hours in 24-hour time,
+                            "MM" is minutes, and "SS" is seconds, all zero-padded. When a user
+                            accesses a connection, this token will be dynamically replaced with the
+                            time that the connection began.</p></dd></dl></div><p>Note that these tokens are replaced dynamically each time a connection is used. If
+                two different users access the same connection at the same time, both users will be
+                connected independently of each other using different sets of connection
+                parameters.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="token-modifiers"></a>Token modifiers</h4></div></div></div><a id="idm46227493511504" class="indexterm"></a><p>At times it can be useful to use the value provided by a token, but with slight
+                    modifications.  These modifers are optionally specified at the end of the token,
+                    separated from the token name by a colon (:), in the format
+                    <code class="varname">${TOKEN_NAME:<em class="replaceable"><code>MODIFIER</code></em>}</code>.The following
+                    modifiers are currently supported:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="varname">LOWER</code></span></dt><dd><p>Convert the entire value of the token to lower-case.  This can be
+                            useful in situations where users log in to Guacamole with a mixed-case
+                            username, but a remote system requires the username be lower-case.</p></dd><dt><span class="term"><code class="varname">UPPER</code></span></dt><dd><p>Convert the entire value of the token to upper-case.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="extension-tokens"></a>Extension-specific tokens</h4></div></div></div><a id="idm46227493502528" class="indexterm"></a><p>Each extension can also implement its own arbitrary tokens that can dynamically
+                    fill in values provided by the extension.  Within these extensions, attribute
+                    names are canonicalized into a standard format that consists of all capital
+                    letters separated by underscores.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="cas-tokens"></a>CAS Extension Tokens</h5></div></div></div><a id="idm46227493499328" class="indexterm"></a><p>The CAS extension will read attributes provided by the CAS server when
+                        a user is authenticated and will make those attributes available as
+                        tokens.  The CAS server must be specifically configured to release certain
+                        attributes to the client (Guacamole), and configuration of that is outside
+                        the scope of this document.  Any attribute that the CAS server is
+                        configured to release should be available to Guacamole as a token for
+                        use within a connection.  The token name will be prepended with the
+                        <code class="constant">CAS_</code> prefix.  A CAS server configured to release
+                        attributes <code class="varname">firstname</code>, <code class="varname">lastname</code>,
+                        <code class="varname">email</code>, and <code class="varname">mobile</code> would produce the
+                        following tokens:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${CAS_FIRSTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_LASTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_EMAIL}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_MOBILE}</code>
+                            </p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ldap-tokens"></a>LDAP Extension Tokens</h5></div></div></div><a id="idm46227493487088" class="indexterm"></a><p>The LDAP extension will read user attributes provided by the LDAP
+                        server and specified in the <code class="filename">guacamole.properties</code>
+                        file.  The attributes retrieved for a user are configured using the
+                        <em class="parameter"><code>ldap-user-attributes</code></em> parameter.  The user must
+                        be able to read the attribute values from their own LDAP object.
+                        The token name will be prepended with the <code class="constant">LDAP_</code>
+                        prefix.  As an example, configuring the following line in
+                        <code class="filename">guacamole.properties</code>:</p><div class="informalexample"><pre class="programlisting">ldap-user-attributes: cn, givenName, sn, mobile, mail
+                        </pre></div><p>will produce the below tokens that can be used in connection
+                            parameters:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${LDAP_CN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_GIVENNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_SN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MOBILE}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MAIL}</code>
+                            </p></li></ul></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parameter-prompting"></a>Parameter prompting</h3></div></div></div><p><a id="idm46227493472512" class="indexterm"></a>In certain situations Guacamole may determine that additional
+                information is required in order to successfully open or continue a
+                connection. In these scenarios guacd will send an instruction back to
+                the client to retrieve that information, which will result in the user
+                being prompted for those additional parameters.</p><p>Currently the only parameters that will trigger this prompt to the
+                user are authentication requests for the RDP and VNC protocols where
+                authenticators were not provided as part of the connection configuration.
+            </p><div class="important"><h3 class="title">Important</h3><p>It is important to note that requests for parameters will only be
+                    generated in the case where that information has not already been
+                    provided as part of the connection. The user will never be asked for
+                    parameters that replace or override connection parameters where
+                    values have been configured as part of the connection, including
+                    authentication information. For example, if the configuration of
+                    a connection to a RDP server specifies a username and password,
+                    and that username or password is incorrect and results in an
+                    authentication failure, Guacamole will not prompt the user for
+                    additional credentials. For RDP servers where NLA is enforced,
+                    this will result in a connection failure. Other RDP servers may
+                    behave differently and give the user the ability to try other
+                    credentials, but this is outside the control of Guacamole -
+                    Guacamole will not override pre-configured values with input
+                    from the user.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd.conf"></a>Configuring guacd</h2></div></div></div><p><a id="idm46227493466336" class="indexterm"></a>guacd is configured with a configuration file called
+                <code class="filename">guacd.conf</code>, by default located in
+                <code class="filename">/etc/guacamole</code>. This file follows a simple, INI-like
+            format:</p><div class="informalexample"><pre class="programlisting">#
+# guacd configuration file
+#
+
+[daemon]
+
+pid_file = /var/run/guacd.pid
+log_level = info
+
+[server]
+
+bind_host = localhost
+bind_port = 4822
+
+#
+# The following parameters are valid only if
+# guacd was built with SSL support.
+#
+
+[ssl]
+
+server_certificate = /etc/ssl/certs/guacd.crt
+server_key = /etc/ssl/private/guacd.key</pre></div><p>Configuration options are given as parameter/value pairs, where the name of the
+            parameter is specified on the left side of an "<code class="code">=</code>", and the value is
+            specified on the right. Each parameter must occur within a proper section, indicated by
+            a section name within brackets. The names of these sections are important; it is the
+            pairing of a section name with a parameter that constitutes the fully-qualified
+            parameter being set.</p><p>For the sake of documentation and readability, comments can be added anywhere within
+            guacd.conf using "<code class="code">#</code>" symbols. All text following a "<code class="code">#</code>" until
+            end-of-line will be ignored.</p><p>If you need to include special characters within the value of a parameter, such as
+            whitespace or any of the above symbols, you can do so by placing the parameter within
+            double quotes:</p><div class="informalexample"><pre class="programlisting">[ssl]
+
+# Whitespace is legal within double quotes ...
+server_certificate = "/etc/ssl/my certs/guacd.crt"
+
+# ... as are other special symbols
+server_key = "/etc/ssl/#private/guacd.key"</pre></div><p>Note that even within double quotes, some characters still have special meaning, such
+            as the double quote itself or newline characters. If you need to include these, they
+            must be "escaped" with a backslash:</p><div class="informalexample"><pre class="programlisting"># Parameter value containing a double quote
+parameter = "some\"value"
+
+# Parameter value containing newline characters
+parameter2 = "line1\
+line2\
+line3"
+
+# Parameter value containing backslashes
+parameter3 = "c:\\windows\\path\\to\\file.txt"</pre></div><p>Don't worry too much about the more complex formatting examples - they are only rarely
+            necessary, and guacd will complain with parsing errors if the configuration file is
+            somehow invalid. To ensure parameter values are entered correctly, just follow the
+            following guidelines:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If the value contains no special characters, just include it as-is.</p></li><li class="listitem"><p>If the value contains any special characters (whitespace, newlines,
+                        <code class="code">#</code>, <code class="code">\</code>, or <code class="code">"</code>), enclose the entire value
+                    within double quotes.</p></li><li class="listitem"><p>If the value is enclosed within double quotes, escape newlines,
+                    <code class="code">\</code>, and <code class="code">"</code> with a backslash.</p></li></ol></div><div class="table"><a id="idm46227493450400"></a><p class="title"><strong>Table 5.1. guacd.conf parameters</strong></p><div class="table-contents"><a id="idm46227493449392" class="indexterm"></a><table class="table" summary="guacd.conf parameters" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Section</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>pid_file</code></em></td><td>
+                            <p><a id="idm46227493439680" class="indexterm"></a>The name of the file in which the PID of the main guacd
+                                process should be written. This is mainly needed for startup
+                                scripts, which need to monitor the state of guacd, killing it if
+                                necessary. If this parameter is specified, the user running guacd
+                                must have sufficient permissions to create or modify the specified
+                                file, or startup will fail.</p>
+                        </td></tr><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>log_level</code></em></td><td>
+                            <p><a id="idm46227493435728" class="indexterm"></a><a id="idm46227493434496" class="indexterm"></a><a id="idm46227493433264" class="indexterm"></a>The maximum level at which guacd will log messages to
+                                syslog and, if running in the foreground, the console. If omitted,
+                                the default level of <code class="constant">info</code> will be used.</p>
+                            <p>Legal values are <code class="constant">trace</code>,
+                                    <code class="constant">debug</code>, <code class="constant">info</code>,
+                                    <code class="constant">warning</code>, and
+                                <code class="constant">error</code>.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_host</code></em></td><td>
+                            <p><a id="idm46227493426400" class="indexterm"></a>The host that guacd should bind to when listening for
+                                connections. If unspecified, guacd will bind to localhost, and only
+                                connections from within the server hosting guacd will
+                                succeed.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_port</code></em></td><td>
+                            <p><a id="idm46227493422656" class="indexterm"></a>The port that guacd should bind to when listening for
+                                connections. If unspecified, port 4822 will be used.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_certificate</code></em></td><td>
+                            <p><a id="idm46227493419056" class="indexterm"></a>The filename of the certificate to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_key</code></em></td><td>
+                            <p><a id="idm46227493414768" class="indexterm"></a>The filename of the private key to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr></tbody></table></div></div><br class="table-break" /><p>You can also affect the configuration of guacd with command-line options. If given,
+            these options take precendence over the system-wide configuration file:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-b <em class="replaceable"><code>HOST</code></em></code></span></dt><dd><p>Changes the host or address that guacd listens on.</p><p>This corresponds to the <em class="parameter"><code>bind_host</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-l <em class="replaceable"><code>PORT</code></em></code></span></dt><dd><p>Changes the port that guacd listens on (the default is port 4822).</p><p>This corresponds to the <em class="parameter"><code>bind_port</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-p <em class="replaceable"><code>PIDFILE</code></em></code></span></dt><dd><p>Causes guacd to write the PID of the daemon process to the specified file.
+                        This is useful for init scripts and is used by the provided init
+                        script.</p><p>This corresponds to the <em class="parameter"><code>pid_file</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-L <em class="replaceable"><code>LEVEL</code></em></code></span></dt><dd><p>Sets the maximum level at which guacd will log messages to syslog and, if
+                        running in the foreground, the console. Legal values are
+                            <code class="constant">trace</code>, <code class="constant">debug</code>,
+                            <code class="constant">info</code>, <code class="constant">warning</code>, and
+                            <code class="constant">error</code>. The default value is
+                            <code class="constant">info</code>.</p><p>This corresponds to the <em class="parameter"><code>log_level</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-f</code></span></dt><dd><p>Causes guacd to run in the foreground, rather than automatically forking
+                        into the background.</p></dd></dl></div><p>If guacd was built with support for SSL, data sent via the Guacamole protocol can be
+            encrypted with SSL if an SSL certificate and private key are given with the following
+            options:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-C <em class="replaceable"><code>CERTIFICATE</code></em></code></span></dt><dd><p>The filename of the certificate to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_certificate</code></em>
+                        parameter within the <em class="parameter"><code>ssl</code></em> section of
+                            <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-K <em class="replaceable"><code>KEY</code></em></code></span></dt><dd><p>The filename of the private key to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_key</code></em> parameter within
+                        the <em class="parameter"><code>ssl</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Proxying Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. Database authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/custom-auth.html b/doc/1.3.0/gug/custom-auth.html
new file mode 100644
index 0000000..a7d42f8
--- /dev/null
+++ b/doc/1.3.0/gug/custom-auth.html
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Custom authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-protocols.html" title="Chapter 24. Adding new protocols" /><link rel="next" href="event-listeners.html" title="Chapter 26. Event listeners" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Custom authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-auth"></a>Chapter 25. Custom authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></div><a id="idm46227492881392" class="indexterm"></a><p>Guacamole's authentication layer is designed to be extendable such that users can
+        integrate Guacamole into existing authentication systems without having to resort to writing
+        their own web application around the Guacamole API.</p><p>The web application comes with a default authentication mechanism which uses an XML file
+        to associate users with connections. Extensions for Guacamole that provide LDAP-based
+        authentication or database-based authentication have also been developed.</p><p>To demonstrate the principles involved, we will implement a very simple authentication
+        extension which associates a single user/password pair with a single connection, with all
+        this information saved in properties inside the <code class="filename">guacamole.properties</code>
+        file.</p><p>In general, all other authentication extensions for Guacamole will use the principles
+        demonstrated here. This tutorial demonstrates the simplest way to create an authentication
+        extension for Guacamole - an authentication extension that does not support management of
+        users and connections via the web interface.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-model"></a>Guacamole's authentication model</h2></div></div></div><p>When you view any page in Guacamole, whether that be the login screen or the client
+            interface, the page makes an authentication attempt with the web application, sending
+            all available credentials. After entering your username and password, the exact same
+            process occurs, except the web application receives the username and password as
+            well.</p><p>The web application handles this authentication attempt by collecting all credentials
+            available and passing them to designated classes called "authentication providers".
+            Given the set of credentials, authentication providers return a context object that
+            provides restricted access to other users and connections, if any.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-skeleton"></a>A Guacamole extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole authentication extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            .java file implementing our stub of an authentication provider, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our authentication provider class.</p><p>In our stub, we won't actually do any authentication yet; we'll just universally
+            reject all authentication attempts by returning <code class="varname">null</code> for any
+            credentials given. You can verify that this is what happens by checking the server
+            logs.</p><div class="example"><a id="idm46227492660160"></a><p class="title"><strong>Example 25.1. Barebones <code class="filename">pom.xml</code> required for a simple authentication
+                extension.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-auth-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.3.0&lt;/version&gt;
+    &lt;name&gt;guacamole-auth-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.3.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>We won't need to update this <code class="filename">pom.xml</code> throughout the rest of the
+            tutorial. Even after adding new files, Maven will just find them and compile as
+            necessary.</p><p>Naturally, we need the actual authentication extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.auth.TutorialAuthenticationProvider</code>.</p><div class="example"><a id="idm46227492879152"></a><p class="title"><strong>Example 25.2. A skeleton <code class="classname">TutorialAuthenticationProvider</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import java.util.Map;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider;
+import org.apache.guacamole.net.auth.Credentials;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+
+/**
+ * Authentication provider implementation intended to demonstrate basic use
+ * of Guacamole's extension API. The credentials and connection information for
+ * a single user are stored directly in guacamole.properties.
+ */
+public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
+
+    @Override
+    public String getIdentifier() {
+        return "tutorial";
+    }
+
+    @Override
+    public Map&lt;String, GuacamoleConfiguration&gt;
+        getAuthorizedConfigurations(Credentials credentials)
+        throws GuacamoleException {
+
+        // Do nothing ... yet
+        return null;        
+
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/auth</code> as
+                <code class="filename">TutorialAuthenticationProvider.java</code>.</p><p>Notice how simple the authentication provider is. The
+                <code class="classname">SimpleAuthenticationProvider</code> base class simplifies the
+                <code class="classname">AuthenticationProvider</code> interface, requiring nothing more than
+            a unique identifier (we will use "tutorial") and a single
+                <code class="methodname">getAuthorizedConfigurations()</code> implementation, which must
+            return a <code class="classname">Map</code> of <code class="classname">GuacamoleConfiguration</code>
+            each associated with some arbitrary unique ID. This unique ID will be presented to the
+            user in the connection list after they log in.</p><p>For now, <code class="methodname">getAuthorizedConfigurations()</code> will just return
+                <code class="varname">null</code>. This will cause Guacamole to report an invalid login for
+            every attempt. Note that there is a difference in semantics between returning an empty
+            map and returning <code class="varname">null</code>, as the former indicates the credentials are
+            authorized but simply have no associated configurations, while the latter indicates the
+            credentials are not authorized at all.</p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 23. guacamole-ext">Chapter 23, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our authentication extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our authentication provider class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46227495767088"></a><p class="title"><strong>Example 25.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.3.0",
+
+    "name"      : "Tutorial Authentication Extension",
+    "namespace" : "guac-auth-tutorial",
+
+    "authProviders" : [
+        "org.apache.guacamole.auth.TutorialAuthenticationProvider"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension will build, and can even
+            be installed within Guacamole (see <a class="xref" href="custom-auth.html#custom-auth-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter), even though it is
+            just a skeleton at this point. It won't do anything yet other than reject all
+            authentication attempts, but it's good to at least try building the extension to make
+            sure nothing is missing and that all steps have been followed correctly so far:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-auth-tutorial 1.3.0
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2.345 s
+[INFO] Finished at: 2015-12-16T13:39:00-08:00
+[INFO] Final Memory: 14M/138M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-auth-tutorial-1.3.0.jar</code>, which can be
+            installed within Guacamole and tested. If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-config"></a>Configuration and authentication</h2></div></div></div><p>Once we receive credentials, we need to validate those credentials against the
+            associated properties in <code class="filename">guacamole.properties</code> (our source of
+            authentication information for the sake of this tutorial).</p><p>We will define four properties:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">tutorial-user</span></span></dt><dd><p>The name of the only user we accept.</p></dd><dt><span class="term"><span class="property">tutorial-password</span></span></dt><dd><p>The password we require for the user specified to be
+                            authenticated.</p></dd><dt><span class="term"><span class="property">tutorial-protocol</span></span></dt><dd><p>The protocol of the configuration this user is authorized to use,
+                            which will be sent to guacd when the user logs in and selects their
+                            connection.</p></dd><dt><span class="term"><span class="property">tutorial-parameters</span></span></dt><dd><p>A comma-delimited list of
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>
+                            pairs. For the sake of simplicity, we'll assume there will never be any
+                            commas in the values.</p></dd></dl></div><p>If the username and password match what is stored in the file, we read the
+            configuration information, store it in a <code class="classname">GuacamoleConfiguration</code>,
+            and return the configuration within a set, telling Guacamole that this user is
+            authorized but only to access the configurations returned.</p><p>Upstream, we always place the properties of authentication providers in their own
+            class, and so we will also do that here in this tutorial, as it keeps things
+            organized.</p><div class="example"><a id="idm46227492361696"></a><p class="title"><strong>Example 25.4. <code class="filename">TutorialProperties.java</code>, a class containing property
+                definitions</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import org.apache.guacamole.properties.StringGuacamoleProperty;
+
+/**
+ * Utility class containing all properties used by the custom authentication
+ * tutorial. The properties defined here must be specified within
+ * guacamole.properties to configure the tutorial authentication provider.
+ */
+public class TutorialGuacamoleProperties {
+
+    /**
+     * This class should not be instantiated.
+     */
+    private TutorialGuacamoleProperties() {}
+
+    /**
+     * The only user to allow.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_USER = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-user"; }
+
+    };
+
+    /**
+     * The password required for the specified user.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PASSWORD = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-password"; }
+
+    };
+
+
+    /**
+     * The protocol to use when connecting.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PROTOCOL = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-protocol"; }
+
+    };
+
+
+    /**
+     * All parameters associated with the connection, as a comma-delimited
+     * list of name="value" 
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PARAMETERS = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-parameters"; }
+
+    };
+
+}</pre></div></div><br class="example-break" /><p>Normally, we would define a new type of <code class="classname">GuacamoleProperty</code> to
+            handle the parsing of the parameters required by <code class="varname">TUTORIAL_PARAMETERS</code>,
+            but for the sake of simplicity, parsing of this parameter will be embedded in the
+            authentication function later.</p><p>You will need to modify your existing <code class="filename">guacamole.properties</code> file,
+            adding each of the above properties to describe one of your available
+            connections.</p><div class="example"><a id="idm46227492355888"></a><p class="title"><strong>Example 25.5. Properties describing a user and connection, as required by this tutorial</strong></p><div class="example-contents"><pre class="programlisting"># Username and password
+tutorial-user:     <em class="replaceable"><code>tutorial</code></em>
+tutorial-password: <em class="replaceable"><code>password</code></em>
+
+# Connection information
+tutorial-protocol:   <em class="replaceable"><code>vnc</code></em>
+tutorial-parameters: <em class="replaceable"><code>hostname=localhost, port=5900</code></em></pre></div></div><br class="example-break" /><p>Once these properties and their accessor class are in place, it's simple enough to
+            read the properties within <code class="methodname">getAuthorizedConfigurations()</code> and
+            authenticate the user based on their username and password.</p><div class="example"><a id="idm46227492351872"></a><p class="title"><strong>Example 25.6. Checking the credentials against the properties</strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations (STUB)
+    return new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+}</pre></div></div><br class="example-break" /><p>As is, the authentication provider will work in its current state in that the correct
+            username and password will authenticate the user, while an incorrect username or
+            password will not, but we still aren't returning an actual map of configurations. We
+            need to construct the configuration based on the properties in the
+                <code class="filename">guacamole.properties</code> file after the user has been
+            authenticated, and return that configuration to the web application.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-more-config"></a>Parsing the configuration</h2></div></div></div><p>The only remaining task before we have a fully-functioning authentication provider is
+            to actually parse the configuration from the <code class="filename">guacamole.properties</code>
+            file.</p><div class="example"><a id="idm46227492346816"></a><p class="title"><strong>Example 25.7. Parsing and returning a <code class="classname">GuacamoleConfiguration</code></strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations.
+    Map&lt;String, GuacamoleConfiguration&gt; configs = 
+        new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+    // Create new configuration
+    GuacamoleConfiguration config = new GuacamoleConfiguration();
+
+    // Set protocol specified in properties
+    config.setProtocol(environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PROTOCOL
+    ));
+
+    // Set all parameters, splitting at commas
+    for (String parameterValue : environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PARAMETERS
+    ).split(",\\s*")) {
+
+        // Find the equals sign
+        int equals = parameterValue.indexOf('=');
+        if (equals == -1)
+            throw new GuacamoleServerException("Required equals sign missing");
+
+        // Get name and value from parameter string
+        String name = parameterValue.substring(0, equals);
+        String value = parameterValue.substring(equals+1);
+
+        // Set parameter as specified
+        config.setParameter(name, value);
+
+    }
+
+    configs.put("Tutorial Connection", config);
+    return configs;
+
+}</pre></div></div><br class="example-break" /><p>The extension is now complete and can be built as described earlier in <a class="xref" href="custom-auth.html#custom-auth-building" title="Building the extension">the section called “Building the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, ensure that the required properties have been added to your
+                <code class="filename">guacamole.properties</code>, copy the
+                <code class="filename">target/guacamole-auth-tutorial-1.3.0.jar</code> file into
+                <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Authentication Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 24. Adding new protocols </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 26. Event listeners</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/custom-protocols.html b/doc/1.3.0/gug/custom-protocols.html
new file mode 100644
index 0000000..1b8abd6
--- /dev/null
+++ b/doc/1.3.0/gug/custom-protocols.html
@@ -0,0 +1,654 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Adding new protocols</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-ext.html" title="Chapter 23. guacamole-ext" /><link rel="next" href="custom-auth.html" title="Chapter 25. Custom authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Adding new protocols</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-protocols"></a>Chapter 24. Adding new protocols</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></div><a id="idm46227492900720" class="indexterm"></a><p>Guacamole's support for multiple remote desktop protocols is provided through plugins
+        which guacd loads dynamically. The Guacamole API has been designed such that protocol
+        support is easy to create, especially when a C library exists providing a basic client
+        implementation.</p><p>In this tutorial, we will implement a simple "client" which renders a bouncing ball using
+        the Guacamole protocol. After completing the tutorial and installing the result, you will be
+        able to add a connection to your Guacamole configuration using the "ball" protocol, and any
+        users using that connection will see a bouncing ball.</p><p>This example client plugin doesn't actually act as a client, but this isn't important. The
+        Guacamole client is really just a remote display, and this client plugin functions as a
+        simple example application which renders to this display, just as Guacamole's own VNC or RDP
+        plugins function as VNC or RDP clients which render to the remote display.</p><p>Each step of this tutorial is intended to exercise a new concept,
+        while also progressing towards the goal of a nifty bouncing ball. At the
+        end of each step, you will have a buildable and working client
+        plugin.</p><p>This tutorial will use the GNU Automake build system, which is the build system used by
+        Guacamole for libguac, guacd, etc. There will be four files involved:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">configure.ac</code></span></dt><dd><p>Used by GNU Automake to generate the <code class="filename">configure</code> script
+                    which ultimately serves to generate the <code class="filename">Makefile</code> which
+                        <span class="command"><strong>make</strong></span> will use when building.</p></dd><dt><span class="term"><code class="filename">Makefile.am</code></span></dt><dd><p>Used by GNU Automake and the <code class="filename">configure</code> script to generate
+                    the <code class="filename">Makefile</code> which <span class="command"><strong>make</strong></span> will use when
+                    building.</p></dd><dt><span class="term"><code class="filename">src/ball.c</code></span></dt><dd><p>The main body of code defining the bouncing ball "client".</p></dd><dt><span class="term"><code class="filename">src/ball.h</code></span></dt><dd><p>A header file defining the structure representing the state of the bouncing
+                    ball (once it becomes necessary to do so).</p></dd></dl></div><p>All source files will be within the <code class="filename">src</code> subdirectory, as is common
+        with C projects, with build files being at the root level directory. The main
+            <code class="filename">src/ball.c</code> and the build-related <code class="filename">configure.ac</code>
+        and <code class="filename">Makefile.am</code> files will be created first, with each successive step
+        building upon those files iteratively, with <code class="filename">src/ball.h</code> being added when
+        it becomes necessary. After each step, you can build/rebuild the plugin by running
+            <span class="command"><strong>make</strong></span>, and then install it (such that guacd can find the plugin) by
+        running <span class="command"><strong>make install</strong></span> and <span class="command"><strong>ldconfig</strong></span> as root:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">  CC       src/ball.lo
+  CCLD     libguac-client-ball.la</code>
+<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">make[1]: Entering directory '/home/user/libguac-client-ball'
+ /usr/bin/mkdir -p '/usr/local/lib'
+ /bin/sh ./libtool   --mode=install /usr/bin/install -c   libguac-client-ball.la '/usr/local/lib'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the '-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the 'LD_RUN_PATH' environment variable
+     during linking
+   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to '/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[1]: Nothing to be done for 'install-data-am'.
+make[1]: Leaving directory '/home/user/libguac-client-ball'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong></pre></div><p>Prior to the first time <span class="command"><strong>make</strong></span> is invoked, you will need to run the
+            <code class="filename">configure</code> script, which will first need to be generated using
+            <span class="command"><strong>autoreconf</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="computeroutput">libtoolize: putting auxiliary files in '.'.
+libtoolize: copying file './ltmain.sh'
+libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
+libtoolize: copying file 'm4/libtool.m4'
+libtoolize: copying file 'm4/ltoptions.m4'
+libtoolize: copying file 'm4/ltsugar.m4'
+libtoolize: copying file 'm4/ltversion.m4'
+libtoolize: copying file 'm4/lt~obsolete.m4'
+configure.ac:10: installing './compile'
+configure.ac:4: installing './missing'
+Makefile.am: installing './depcomp'</code>
+<code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+configure: creating ./config.status
+config.status: creating Makefile
+config.status: executing depfiles commands
+config.status: executing libtool commands</code>
+<code class="prompt">$</code></pre></div><p>This process is almost identical to that of building guacamole-server from git, as
+        documented in <a class="xref" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">the section called “Building <span class="package">guacamole-server</span>”</a>.</p><div class="important"><h3 class="title">Important</h3><p>The libguac library which is part of guacamole-server is a required dependency of this
+            project. <span class="emphasis"><em>You must first install libguac, guacd, etc. by <a class="link" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">building and installing guacamole-server</a>.</em></span> If guacamole-server
+            has not been installed, and libguac is thus not present, the
+                <code class="filename">configure</code> script will fail with an error indicating that it
+            could not find libguac:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+checking for guac_client_stream_png in -lguac... no
+configure: error: "libguac is required for communication via "
+                   "the Guacamole protocol"</code>
+<code class="prompt">$</code></pre></div><p>You will need to install guacamole-server and then rerun
+                <code class="filename">configure</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-skeleton"></a>Minimal skeleton client</h2></div></div></div><p>Very little needs too be done to implement the most basic client plugin possible. We
+            begin with <code class="filename">src/ball.c</code>, containing the absolute minimum required for
+            a client plugin:</p><div class="informalexample"><a id="ball-01-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+/* Client plugin arguments (empty) */
+const char* TUTORIAL_ARGS[] = { NULL };
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+
+    return 0;
+
+}</pre></div><p>Notice the structure of this file. There is exactly one function,
+                <code class="methodname">guac_client_init</code>, which is the entry
+            point for all Guacamole client plugins. Just as a typical C program
+            has a <code class="methodname">main</code> function which is executed when
+            the program is run, a Guacamole client plugin has
+                <code class="methodname">guac_client_init</code> which is called when
+            guacd loads the plugin when a new connection is made and your
+            protocol is selected.</p><p><code class="methodname">guac_client_init</code> receives a single
+                <code class="classname">guac_client</code> which it must initialize. Part of this
+            initialization process involves declaring the list of arguments that joining users can
+            specify. While we won't be using arguments in this tutorial, and thus the arguments
+            assigned above are simply an empty list, a typical client plugin implementation would
+            register arguments which define the remote desktop connection and its behavior. Examples
+            of such parameters can be seen in the connection parameters for the protocols supported
+            by Guacamole out-of-the-box (see <a class="xref" href="configuring-guacamole.html#connection-configuration" title="Configuring connections">the section called “Configuring connections”</a>).</p><p>The <code class="classname">guac_client</code> instance given to
+                <code class="methodname">guac_client_init</code> will be shared by the user that starts the
+            connection, and any users which join the connection via screen sharing. It lives until
+            the connection is explicitly closed, or until all users leave the connection.</p><p>For this project to build with GNU Automake, we a <code class="filename">configure.ac</code>
+            file which describes the name of the project and what it needs configuration-wise. In
+            this case, the project is "libguac-client-ball", and it depends on the "libguac" library
+            used by guacd and all client plugins:</p><div class="informalexample"><a id="ball-01-configure.in"></a><pre xml:lang="en" class="programlisting" lang="en"># Project information
+AC_PREREQ([2.61])
+AC_INIT([libguac-client-ball], [0.1.0])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
+AM_SILENT_RULES([yes])
+
+AC_CONFIG_MACRO_DIRS([m4])
+
+# Check for required build tools
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_LIBTOOL
+
+# Check for libguac
+AC_CHECK_LIB([guac], [guac_client_stream_png],,
+      AC_MSG_ERROR("libguac is required for communication via "
+                   "the Guacamole protocol"))
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT</pre></div><p>We also need a <code class="filename">Makefile.am</code>, describing which files should be
+            built and how when building
+            libguac-client-ball:<a id="ball-01-Makefile.am"></a></p><pre xml:lang="en" class="programlisting" lang="en">AUTOMAKE_OPTIONS = foreign
+
+ACLOCAL_AMFLAGS = -I m4
+AM_CFLAGS = -Werror -Wall -pedantic
+
+lib_LTLIBRARIES = libguac-client-ball.la
+
+# All source files of libguac-client-ball
+libguac_client_ball_la_SOURCES = src/ball.c
+
+# libtool versioning information
+libguac_client_ball_la_LDFLAGS = -version-info 0:0:0</pre><p>The GNU Automake files will remain largely unchanged throughout
+            the rest of the tutorial. </p><p>Once you have created all of the above files, you will have a functioning client
+            plugin. It doesn't do anything yet, and any connection will be extremely short-lived
+            (the lack of any data sent by the server will lead to the client disconnecting under the
+            assumption that the connection has stopped responding), but it does technically
+            work.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-display-init"></a>Initializing the remote display</h2></div></div></div><p>Now that we have a basic functioning skeleton, we need to actually do something with
+            the remote display. A good first step would be simply initializing the display - setting
+            the remote display size and providing a basic background.</p><p>In this case, we'll set the display to a nice default of 1024x768, and fill the
+            background with gray. Though the size of the display <span class="emphasis"><em>can</em></span> be chosen
+            based on the size of the user's browser window (which is provided by the user during the
+                <a class="link" href="guacamole-protocol.html#guacamole-protocol-handshake" title="Handshake phase">Guacamole protocol handshake</a>), or even
+            updated when the window size changes (provided by the user via <a class="link" href="protocol-reference.html#size-event-instruction" title="size">"size"
+                instructions</a>), we won't be doing that here for the simplicity's sake:</p><div class="informalexample"><a id="ball-02-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;</em></span>
+
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+
+    /* Get user-specific socket */
+    guac_socket* socket = user-&gt;socket;
+
+    /* Send the display size */
+    guac_protocol_send_size(socket, GUAC_DEFAULT_LAYER, 1024, 768);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            0x80, 0x80, 0x80, 0xFF);
+
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+<span class="emphasis"><em>
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+</em></span>
+    return 0;
+
+}</pre></div><p>The most important thing to notice here is the new
+                <code class="function">ball_join_handler()</code> function. As it is assigned to
+                <span class="property">join_handler</span> of the <code class="classname">guac_client</code> given to
+                <code class="function">guac_client_init</code>, users which join the connection (including
+            the user that opened the connection in the first place) will be passed to this function.
+            It is the duty of the join handler to initialize the provided
+                <code class="classname">guac_user</code>, taking into account any arguments received from
+            the user during the connection handshake (exposed through <code class="varname">argc</code> and
+                <code class="varname">argv</code> to the join handler). We aren't implementing any arguments,
+            so these values are simply ignored, but we do need to initialize the user with respect
+            to display state. In this case, we:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#size-instruction" title="size">"size" instruction</a>, initializing the
+                    display size to 1024x768.</p></li><li class="listitem"><p>Draw a 1024x768 gray rectangle over the display using the <a class="link" href="protocol-reference.html#rect-instruction" title="rect">"rect"</a> and <a class="link" href="protocol-reference.html#cfill-instruction" title="cfill">"cfill"</a> instructions.</p></li><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#server-sync-instruction" title="sync">"sync" instruction</a>, informing the
+                    remote display that a frame has been completed.</p></li><li class="listitem"><p>Flush the socket, ensuring that all data written to the socket thus far is
+                    immediately sent to the user.</p></li></ol></div><p>At this point, if you build, install, and connect using the plugin, you will see a
+            gray screen. The connection will still be extremely short-lived, however, since the only
+            data ever sent by the plugin is sent when the user first joins. The lack of any data
+            sent by the server over the remaining life of the connection will lead to the client
+            disconnecting under the assumption that the connection has stopped responding. This will
+            be rectified shortly once we add the bouncing ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-layer"></a>Adding the ball</h2></div></div></div><p>This tutorial is about making a bouncing ball "client", so naturally we need a ball to
+            bounce. While we could repeatedly draw and erase a ball on the remote display, a more
+            efficient technique would be to leverage Guacamole's layers.</p><p>The remote display has a single root layer, <code class="varname">GUAC_DEFAULT_LAYER</code>, but
+            there can be infinitely many other child layers, which can themselves have child layers,
+            and so on. Each layer can be dynamically repositioned within and relative to another
+            layer. Because the compositing of these layers is handled by the remote display, and is
+            likely hardware-accelerated, this is a much better way to repeatedly reposition
+            something we expect to move a lot.</p><p>Since we're finally adding the ball, and there needs to be some structure which
+            maintains the state of the ball, we must create a header file,
+                <code class="filename">src/ball.h</code>, to define this:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#ifndef BALL_H
+#define BALL_H
+
+#include &lt;guacamole/layer.h&gt;
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+
+} ball_client_data;
+
+#endif</pre></div><p>To make the build system aware of the existence of the new
+                <code class="filename">src/ball.h</code> header file, <code class="filename">Makefile.am</code> must
+            be updated as well:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">...
+
+# All source files of libguac-client-ball
+<span class="emphasis"><em>noinst_HEADERS = src/ball.h</em></span>
+libguac_client_ball_la_SOURCES = src/ball.c
+
+...</pre></div><p>This new structure is intended to house the client-level state of the ball,
+            independent of any users which join or leave the connection. The structure must be
+            allocated when the client begins (within <code class="function">guac_client_init</code>), freed
+            when the client terminates (via a new client free handler), and must contain the layer
+            which represents the ball within the remote display. As this layer is part of the remote
+            display state, it must additionally be initialized when a user joins, in the same way
+            that the display overall was initialized in earlier steps:</p><div class="informalexample"><a id="ball-03-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en"><span class="emphasis"><em>#include "ball.h"</em></span>
+
+#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/layer.h&gt;</em></span>
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+...
+
+int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+<span class="emphasis"><em>
+    /* Get ball layer from client data */
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+    guac_layer* ball = data-&gt;ball;
+</em></span>
+    ...
+<span class="emphasis"><em>
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, ball,
+            0, 0, 128, 128);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, ball,
+            0x00, 0x80, 0x80, 0xFF);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}
+
+<span class="emphasis"><em>int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Free client-level ball layer */
+    guac_client_free_layer(client, data-&gt;ball);
+
+    /* Free client-specific data */
+    free(data);
+
+    /* Data successfully freed */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+<span class="emphasis"><em>
+    /* Allocate storage for client-specific data */
+    ball_client_data* data = malloc(sizeof(ball_client_data));
+
+    /* Set up client data and handlers */
+    client-&gt;data = data;
+
+    /* Allocate layer at the client level */
+    data-&gt;ball = guac_client_alloc_layer(client);
+</em></span>
+    ...
+
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+    <span class="emphasis"><em>client-&gt;free_handler = ball_free_handler;</em></span>
+
+    return 0;
+
+}</pre></div><p>The allocate/free pattern for the client-specific data and layers should be pretty
+            straightforward - the allocation occurs when the objects (the layer and the structure
+            housing it) are first needed, and the allocated objects are freed once they are no
+            longer needed (when the client terminates) to avoid leaking memory. The initialization
+            of the ball layer using the Guacamole protocol should be familiar as well - it's
+            identical to the way the screen was initialized, and involves the same
+            instructions.</p><p>Beyond layers, Guacamole has the concept of buffers, which are identical in use to
+            layers except they are invisible. Buffers are used to store image data for the sake of
+            caching or drawing operations. We will use them later when we try to make this tutorial
+            prettier. If you build and install the ball client as-is now, you will see a large gray
+            rectangle (the root layer) with a small blue square in the upper left corner (the ball
+            layer).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-bounce"></a>Making the ball bounce</h2></div></div></div><p>To make the ball bounce, we need to track the ball's state, including current position
+            and velocity, as well as a thread which updates the ball's state (and the remote
+            display) as time progresses. The ball state and thread can be stored alongside the ball
+            layer in the existing client-level data structure:</p><div class="informalexample"><a id="ball-04-ball_client.h"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+#include &lt;guacamole/layer.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+<span class="emphasis"><em>
+    int ball_x;
+    int ball_y;
+
+    int ball_velocity_x;
+    int ball_velocity_y;
+
+    pthread_t render_thread;
+</em></span>
+} ball_client_data;
+
+...</pre></div><p>The contents of the thread will update these values at a pre-defined rate, changing
+            ball position with respect to velocity, and changing velocity with respect to collisions
+            with the display boundaries:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>void* ball_render_thread(void* arg) {
+
+    /* Get data */
+    guac_client* client = (guac_client*) arg;
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == GUAC_CLIENT_RUNNING) {
+
+        /* Sleep a bit */
+        usleep(30000);
+
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * 30 / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * 30 / 1000;
+
+        /* Bounce if necessary */
+        if (data-&gt;ball_x &lt; 0) {
+            data-&gt;ball_x = -data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+        else if (data-&gt;ball_x &gt;= 1024 - 128) {
+            data-&gt;ball_x = (2 * (1024 - 128)) - data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+
+        if (data-&gt;ball_y &lt; 0) {
+            data-&gt;ball_y = -data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+        else if (data-&gt;ball_y &gt;= 768 - 128) {
+            data-&gt;ball_y = (2 * (768 - 128)) - data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+
+        guac_protocol_send_move(client-&gt;socket, data-&gt;ball,
+                GUAC_DEFAULT_LAYER, data-&gt;ball_x, data-&gt;ball_y, 0);
+
+        /* End frame and flush socket */
+        guac_client_end_frame(client);
+        guac_socket_flush(client-&gt;socket);
+
+    }
+
+    return NULL;
+
+}</em></span>
+
+...</pre></div><p>Just as with the join handler, this thread sends a "sync" instruction to denote the
+            end of each frame, though here this is accomplished with
+                <code class="function">guac_client_end_frame()</code>. This function sends a "sync"
+            containing the current timestamp, and updates the properties of the
+                <code class="classname">guac_client</code> with the last-sent timestamp (the value that our
+            join handler uses to send <span class="emphasis"><em>its</em></span> sync). Note that we don't redraw the
+            whole display with each frame - we simply update the position of the ball layer using a
+                <a class="link" href="protocol-reference.html#move-instruction" title="move">"move"
+                instruction</a>, and rely on the remote display to handle compositing on its
+            own.</p><p>We now need to update <code class="methodname">guac_client_init</code> to actually create
+            this thread, initialize the ball state within the structure, and store the thread for
+            future cleanup when the client terminates:</p><div class="informalexample"><a id="ball-04-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+<span class="emphasis"><em>
+    /* Wait for render thread to terminate */
+    pthread_join(data-&gt;render_thread, NULL);
+</em></span>
+    ...
+
+}
+
+int guac_client_init(guac_client* client) {
+
+    ...
+<span class="emphasis"><em>
+    /* Start ball at upper left */
+    data-&gt;ball_x = 0;
+    data-&gt;ball_y = 0;
+
+    /* Move at a reasonable pace to the lower right */
+    data-&gt;ball_velocity_x = 200; /* pixels per second */
+    data-&gt;ball_velocity_y = 200; /* pixels per second */
+
+    /* Start render thread */
+    pthread_create(&amp;data-&gt;render_thread, NULL, ball_render_thread, client);
+</em></span>
+    ...
+
+}</pre></div><p>The thread contains a render loop which continually checks the
+                <span class="property">state</span> property of the <code class="classname">guac_client</code>. This
+            property is set to <code class="constant">GUAC_CLIENT_RUNNING</code> when the connection begins,
+            and remains that way for the duration of the connection. When guacd needs to terminate
+            the connection (such as when the last user leaves), the value will change to
+                <code class="constant">GUAC_CLIENT_STOPPING</code>. The free handler we've written can thus
+            rely on <code class="function">pthread_join()</code> to block until the data previously used by
+            the plugin is no longer being used and can safely be freed.</p><p>Once built and installed, our ball client now has a bouncing ball, albeit a very
+            square and plain one. Now that the display is continually updating, and data is being
+            continually received from the server, connected clients will no longer automatically
+            disconnect.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-pretty"></a>A prettier ball</h2></div></div></div><p>Now that we have our ball bouncing, we might as well try to make it actually look like
+            a ball, and try applying some of the fancier graphics features that Guacamole offers.
+            Guacamole provides instructions common to most 2D drawing APIs, including HTML5's canvas
+            and Cairo. This means you can draw arcs, curves, apply fill and stroke, and even use the
+            contents of another layer or buffer as the pattern for a fill or stroke. In complex
+            cases involving many draw operations, it will actually be more efficient to render to a
+            server-side Cairo surface and send only image data to the client, but it's perfect for
+            relatively simple cases like our ball.</p><p>We will try creating a simple gray checkerboard pattern in a buffer, using that for
+            the background instead of the previous gray rectangle, and will modify the ball by
+            replacing the rectangle with an arc, in this case a full circle, complete with stroke
+            (border) and translucent-blue fill:</p><div class="informalexample"><a id="ball-05-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    ...
+<span class="emphasis"><em>
+    /* Create background tile */
+    guac_layer* texture = guac_client_alloc_buffer(client);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 64, 64);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0x88, 0x88, 0x88, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 32, 32, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+</em></span>
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+     /* Fill curve with <span class="emphasis"><em>texture</em></span> */
+    <span class="emphasis"><em>guac_protocol_send_lfill</em></span>(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            <span class="emphasis"><em>texture</em></span>);
+
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+<span class="emphasis"><em>
+    /* Prepare a circular curve */
+    guac_protocol_send_arc(socket, data-&gt;ball,
+            64, 64, 62, 0, 6.28, 0);
+
+    guac_protocol_send_close(socket, data-&gt;ball);
+
+    /* Draw a 4-pixel black border */
+    guac_protocol_send_cstroke(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            GUAC_LINE_CAP_ROUND, GUAC_LINE_JOIN_ROUND, 4,
+            0x00, 0x00, 0x00, 0xFF);
+
+    /* Fill the circle with color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            0x00, 0x80, 0x80, 0x80);
+
+    /* Free texture (no longer needed) */
+    guac_client_free_buffer(client, texture);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    ...
+
+}</pre></div><p>Again, because we put the ball in its own layer, we don't have to worry about
+            compositing it ourselves. The remote display will handle this, and will likely do so
+            with hardware acceleration, even though the ball is now translucent. Build and install
+            the ball client after this step, and you will have a rather nice-looking bouncing
+            ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-time"></a>Handling the passage of time</h2></div></div></div><p>There are never any guarantees when it comes to timing, threads, and network
+            performance. We cannot necessarily rely on the remote display to handle updates in a
+            timely manner (it may be slow), nor can we rely on the network or server to give
+            priority to communication from guacd. </p><p>The render thread needs to be modified to take this into account, by tracking the
+            actual time spent within each frame, and estimating the amount of time the client spends
+            rendering each frame:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/timestamp.h&gt;</em></span>
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;pthread.h&gt;
+#include &lt;stdlib.h&gt;
+
+...
+
+void* ball_render_thread(void* arg) {
+
+    ...
+<span class="emphasis"><em>
+    /* Init time of last frame to current time */
+    guac_timestamp last_frame = guac_timestamp_current();
+</em></span>
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == CLIENT_RUNNING) {
+<span class="emphasis"><em>
+        /* Default to 30ms frames */
+        int frame_duration = 30;
+
+        /* Lengthen frame duration if client is lagging */
+        int processing_lag = guac_client_get_processing_lag(client);
+        if (processing_lag &gt; frame_duration)
+            frame_duration = processing_lag;
+
+        /* Sleep for duration of frame, then get timestamp */
+        usleep(frame_duration);
+        guac_timestamp current = guac_timestamp_current();
+
+        /* Calculate change in time */
+        int delta_t = current - last_frame;
+</em></span>
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * <span class="emphasis"><em>delta_t</em></span> / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * <span class="emphasis"><em>delta_t</em></span> / 1000;
+
+        ...
+<span class="emphasis"><em>
+        /* Update timestamp */
+        last_frame = current;
+</em></span>
+    }
+
+    ...
+
+}</pre></div><p>The calculations are pretty simple. Rather than hard-code the duration of each frame,
+            we us a default of 30 milliseconds, lengthening the frame if Guacamole's built-in lag
+            estimation determines that the client is having trouble. The physics portion of the
+            update no longer assumes that the frame will be exactly 30 milliseconds, instead relying
+            on the actual time elapsed since the previous frame.</p><p>At this point, we now have a robust Guacamole client plugin. It handles
+            joining/leaving users correctly, continually updates the remote display state while
+            taking into account variable network/server/client conditions, and cleans up after
+            itself when the connection finally terminates.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 23. guacamole-ext </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 25. Custom authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/developers-guide.html b/doc/1.3.0/gug/developers-guide.html
new file mode 100644
index 0000000..b25c5d0
--- /dev/null
+++ b/doc/1.3.0/gug/developers-guide.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Developer's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="troubleshooting.html" title="Chapter 18. Troubleshooting" /><link rel="next" href="guacamole-protocol.html" title="Chapter 19. The Guacamole protocol" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II. Developer's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="developers-guide"></a>Part II. Developer's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-protocol.html">19. The Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="libguac.html">20. libguac</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common.html">21. <span class="package">guacamole-common</span></a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common-js.html">22. guacamole-common-js</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-ext.html">23. guacamole-ext</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-protocols.html">24. Adding new protocols</a></span></dt><dd><dl><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-auth.html">25. Custom authentication</a></span></dt><dd><dl><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="event-listeners.html">26. Event listeners</a></span></dt><dd><dl><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">27. Writing your own Guacamole application</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 18. Troubleshooting </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. The Guacamole protocol</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/duo-auth.html b/doc/1.3.0/gug/duo-auth.html
new file mode 100644
index 0000000..0ee1252
--- /dev/null
+++ b/doc/1.3.0/gug/duo-auth.html
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Duo two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="ldap-auth.html" title="Chapter 7. LDAP authentication" /><link rel="next" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. Duo two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="duo-auth"></a>Chapter 8. Duo two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#idm46227496750064">Adding Guacamole to Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#completing-duo-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46227495917712" class="indexterm"></a><p>Guacamole supports Duo as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website. The Duo
+        authentication extension allows users to be additionally verified against the Duo service
+        before the authentication process is allowed to succeed.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-architecture"></a>How Duo works with Guacamole</h2></div></div></div><p>Guacamole provides support for Duo as a second authentication factor. To make use of
+            the Duo authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole reach
+            out to Duo to obtain additional verification of user identity:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification through Duo succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-downloading"></a>Downloading the Duo extension</h2></div></div></div><p>The Duo authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The Duo authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+                <code class="filename">guacamole-auth-duo-1.3.0.jar</code>, which must ultimately
+            be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-duo-auth"></a>Installing Duo authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the Duo authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-duo-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use Duo authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the Duo authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496750064"></a>Adding Guacamole to Duo</h3></div></div></div><p>Duo does not provide a specific integration option for Guacamole, but Guacamole's
+                Duo extension uses Duo's generic authentication API which they refer to as the "Web
+                SDK". To use Guacamole with Duo, you will need to add it as a new "Web SDK"
+                application from within the "Applications" tab of the admin panel of your Duo
+                account:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-add-guacamole.png" width="540" /></div></div><p>Within the settings of the newly-added application, rename the application to
+                something more representative than "Web SDK". This application name is what will be
+                presented to your users when they are prompted by Duo for additional
+                authentication:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-rename-guacamole.png" width="540" /></div></div><p>Once you've finished adding Guacamole as an "Web SDK" application, the
+                configuration information required to configure Guacamole is listed within the
+                application's "Details" section. You will need to copy the integration key, secret
+                key, and API hostname - they will later be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-copy-details.png" width="540" /></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-duo-config"></a>Configuring Guacamole for Duo</h3></div></div></div><a id="idm46227497339472" class="indexterm"></a><a id="idm46227497338576" class="indexterm"></a><p>The application-specific configuration information retrieved from Duo must be
+                added to <code class="filename">guacamole.properties</code> to describe how Guacamole should
+                connect to the Duo service:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-api-hostname</span></span></dt><dd><p>The hostname of the Duo API endpoint to be used to verify user
+                            identities. This will usually be in the form
+                                    "<code class="uri">api-<em class="replaceable"><code>XXXXXXXX</code></em>.duosecurity.com</code>",
+                            where "<em class="replaceable"><code>XXXXXXXX</code></em>" is some arbitrary
+                            alphanumeric value assigned by Duo. This value will have been generated
+                            by Duo when you added Guacamole as an "Web SDK" application, and can be
+                            found within the application details in the "API hostname" field.
+                                <span class="emphasis"><em>This value is required.</em></span></p></dd><dt><span class="term"><span class="property">duo-integration-key</span></span></dt><dd><p>The integration key provided for Guacamole by Duo. This value will
+                            have been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Integration key" field. <span class="emphasis"><em>This value is required and must be
+                                EXACTLY 20 characters.</em></span></p></dd><dt><span class="term"><span class="property">duo-secret-key</span></span></dt><dd><p>The secret key provided for Guacamole by Duo. This value will have
+                            been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Secret key" field. <span class="emphasis"><em>This value is required and must be EXACTLY
+                                40 characters.</em></span></p></dd></dl></div><p>In addition to the above, <span class="emphasis"><em>you must also manually generate an
+                    "application key"</em></span>. The application key is required by Duo's
+                authentication API, but is not provided by Duo. It is an arbitrary value meant to be
+                unique to each deployment of an application using their API.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-application-key</span></span></dt><dd><p>An arbitrary, random key which you manually generated for Guacamole.
+                                <span class="emphasis"><em>This value is required and must be AT LEAST 40
+                                characters.</em></span></p></dd></dl></div><p>The application key can be generated with any method as long as it is sufficiently
+                random. There exist utilities which will do this for you, like
+                    <span class="command"><strong>pwgen</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pwgen 40 1</code></strong>
+<code class="computeroutput">em1io4zievohneeseiwah0zie2raQuoo2ci5oBoo</code>
+<code class="prompt">$</code></pre></div><p>Alternatively, one quick and fairly portable way to do this is to use the
+                    <span class="command"><strong>dd</strong></span> utility to copy random bytes from the secure random device
+                    <code class="filename">/dev/random</code>, sending the data through a cryptographic hash
+                tool with a sufficiently-long result, like <span class="command"><strong>sha256sum</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>dd if=/dev/random count=1 | sha256sum</code></strong>
+<code class="computeroutput">5d16d6bb86da73e7d1abd3286b21dcf3b3e707532e64ceebc7a008350d0d485d -</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-duo-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before Duo authentication will take effect. Restart your servlet container
+                and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the Duo extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. LDAP authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. TOTP two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/event-listeners.html b/doc/1.3.0/gug/event-listeners.html
new file mode 100644
index 0000000..d24a4c6
--- /dev/null
+++ b/doc/1.3.0/gug/event-listeners.html
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Event listeners</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-auth.html" title="Chapter 25. Custom authentication" /><link rel="next" href="writing-you-own-guacamole-app.html" title="Chapter 27. Writing your own Guacamole application" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Event listeners</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="event-listeners"></a>Chapter 26. Event listeners</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></div><a id="idm46227493028336" class="indexterm"></a><p>Guacamole supports the delivery of event notifications to custom extensions.
+        Developers can use listener extensions to integrate custom handling of events such as 
+        successful and failed authentications, and requests to connect and disconnect tunnels to 
+        desktop environments.</p><p>A listener extension could be used, for example, to record authentication attempts in 
+        an external database for security auditing or alerting. By listening to tunnel lifecycle 
+        events, a listener extension could be used to help coordinate startup and shutdown of 
+        machine resources; particularly useful in cloud environments where minimizing 
+        running-but-idle resources is an important cost savings measure.</p><p>For certain <span class="emphasis"><em>vetoable</em></span> events, an event listener can even influence
+        Guacamole's behavior. For example, a listener can veto a successful authentication,
+        effectively causing the authentication to be considered failed. Similarly, a listener 
+        can veto a tunnel connection, effectively preventing the tunnel from being connected to
+        a virtual desktop resource.</p><p>Custom event listeners are packaged using the same extension mechanism used for
+        custom authentication providers. A single listener extension can include any number of 
+        classes that implement the listener interface. A single extension module can also include
+        any combination of authentication providers and listeners, so developers can easily
+        combine authentication providers with listeners designed to support them.</p><p>To demonstrate the principles involved in receiving Guacamole event notifications, we 
+        will implement a simple listener extension that logs authentication events. While our 
+        approach simply writes event details to the same log used by the Guacamole web application, 
+        a listener could process these events in arbitrary ways, limited only by the imagination and
+        ingenuity of the developer.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-event-listener-skeleton"></a>A Guacamole listener extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole listener extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            <code class="filename">.java</code> file implementing our stub of a listener, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our listener class.</p><div class="example"><a id="idm46227492656608"></a><p class="title"><strong>Example 26.1. Barebones <code class="filename">pom.xml</code> required for a simple listener
+                extension that writes log messages for received events.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-listener-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.3.0&lt;/version&gt;
+    &lt;name&gt;guacamole-listener-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.3.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Slf4j API --&gt;
+        &lt;!-- This is needed only if your listener wants to 
+                write to the Guacamole web application log --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
+            &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
+            &lt;version&gt;1.7.7&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>Naturally, we need the actual listener extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.event.TutorialListener</code>.</p><p>For now, we won't actually do anything other than log the fact that an event 
+            notification was received. At this point, we're just creating the skeleton for our 
+            listener extension.</p><div class="example"><a id="idm46227492652864"></a><p class="title"><strong>Example 26.2. A skeleton <code class="classname">TutorialListener</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener implementation intended to demonstrate basic use
+ * of Guacamole's listener extension API.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+         LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+        logger.info("received Guacamole event notification");
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/event</code> as
+                <code class="filename">TutorialListener.java</code>.</p><p>As you can see, implementing a listener is quite simple. There is a single 
+            <code class="classname">Listener</code> interface to implement. All Guacamole event
+            notifications will be delivered to your code by invoking the 
+            <code class="methodname">handleEvent</code> method. We will see shortly how to use
+            the passed event object to get the details of the event itself.
+        </p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 23. guacamole-ext">Chapter 23, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our listener extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our listener class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46227492327344"></a><p class="title"><strong>Example 26.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.3.0",
+
+    "name"      : "Tutorial Listener Extension",
+    "namespace" : "guac-listener-tutorial",
+
+    "listeners" : [
+        "org.apache.guacamole.event.TutorialListener"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension should build successfully
+            even though it is just a skeleton at this point.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ---------------------------------------------------------------
+[INFO] Building guacamole-listener-tutorial 1.3.0
+[INFO] ---------------------------------------------------------------
+...
+[INFO] ---------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ---------------------------------------------------------------
+[INFO] Total time: 1.297 s
+[INFO] Finished at: 2017-10-08T13:12:39-04:00
+[INFO] Final Memory: 19M/306M
+[INFO] ---------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-listener-tutorial-1.3.0.jar</code>, which can be
+            installed within Guacamole (see <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter). It should log
+            event notifications that occur during, for example, authentication attempts.
+            If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-event-handling"></a>Handling events</h2></div></div></div><p>The Guacamole <code class="classname">Listener</code> interface represents a low-level event
+            handling API. A listener is notified of every event generated by Guacamole. The listener
+            must examine the event type to determine whether the event is of interest, and if so to 
+            dispatch the event to the appropriate entry point.</p><p>The event types that can be produced by Guacamole are described in the 
+            <span class="package">org.apache.guacamole.net.event</span> package of the <span class="package">guacamole-ext</span>
+            API. In this package you will find several concrete event types as well as interfaces that 
+            describe common characteristics of certain of event types. You can use any of these types 
+            to distinguish the events received by your listener, and to examine properties of an event 
+            of a given type.</p><p>Suppose we wish to log authentication success and failure events, while ignoring all other
+            event types. The <code class="classname">AuthenticationSuccessEvent</code> and 
+            <code class="classname">AuthenticationFailureEvent</code> types are used to notify a listener
+            of authentication events. We can simply check whether a received event is of one of
+            these types and, if so, log an appropriate message.</p><div class="example"><a id="idm46227492311024"></a><p class="title"><strong>Example 26.4. Using the event type to log an authentication success or failure</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+            logger.info("successful authentication for user {}", 
+                ((AuthenticationSuccessEvent) event)
+                    .getCredentials().getUsername());
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>In our example, we use <code class="code">instanceof</code> to check for the two event types of
+        interest to our listener. Once we have identified an event of interest, we can safely
+        cast the event type to access properties of the event.</p><p>The extension is now complete and can be built as described earlier in <a class="xref" href="event-listeners.html#custom-listener-building" title="Building the extension">the section called “Building the extension”</a>
+            and installed as described below in <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-veto"></a>Influencing Guacamole by event veto</h2></div></div></div><p>An implementation of the <code class="methodname">handleEvent</code> method is permitted to
+            throw any <code class="classname">GuacamoleException</code>. For certain <span class="emphasis"><em>vetoable</em></span>
+            event types, throwing a <code class="classname">GuacamoleException</code> serves to effectively 
+            veto the action that resulted in the event notification. See the API documentation for
+            <span class="package">guacamole-ext</span> to learn more about vetoable event types.</p><p>As an (admittedly contrived) example, suppose we want to prevent a user named 
+            "guacadmin" from accessing Guacamole. For whatever reason, we don't wish to remove or disable 
+            the auth database entry for this user. In this case we can use a listener to "blacklist" this
+            user, preventing access to Guacamole. In the listener, when we get an 
+            <code class="classname">AuthenticationSuccessEvent</code> we can check to see if the user is 
+            "guacadmin" and, if so, throw an exception to prevent this user from logging in to 
+            Guacamole.</p><div class="example"><a id="idm46227492300384"></a><p class="title"><strong>Example 26.5. Vetoing an event by throwing a <code class="classname">GuacamoleException</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.GuacamoleSecurityException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events
+ * and prevents the "guacadmin" user from logging in by throwing
+ * a GuacamoleSecurityException.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+          final String username = ((AuthenticationSuccessEvent) event)
+              .getCredentials().getUsername();
+
+          if ("guacadmin".equals(username)) {
+            logger.warn("user {} is blacklisted", username);
+            throw new GuacamoleSecurityException(
+                "User '" + username + "' is blacklisted");
+          }
+
+          logger.info("successful authentication for user {}", username);
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>If our Guacamole user database contains a user named "guacadmin", and we build and 
+            install this listener extension, we will find that an attempt to log in as this user
+            now results in a message in the UI indicating that the user is blacklisted. If we
+            examine the Guacamole log, we will see the message indicating that the user is 
+            blacklisted. Because the successful authentication was vetoed, Guacamole sends a
+            subsequent authentication failure notification, which we see logged as well.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, copy the
+            <code class="filename">target/guacamole-listener-tutorial-1.3.0.jar</code> file into
+            <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Listener Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 25. Custom authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 27. Writing your own Guacamole application</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/faq.html b/doc/1.3.0/gug/faq.html
new file mode 100644
index 0000000..cc879b3
--- /dev/null
+++ b/doc/1.3.0/gug/faq.html
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. FAQ</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="appendices.html" title="Part III. Appendices" /><link rel="next" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. FAQ</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="faq"></a>Appendix A. FAQ</h2></div></div></div><div class="qandaset"><a id="idm46227492867824"></a><dl><dt>A.1. <a href="faq.html#idm46227492867568">Where does the name "Guacamole" come from? </a></dt><dt>A.2. <a href="faq.html#idm46227492284048">What does "clientless" mean? </a></dt><dt>A.3. <a href="faq.html#idm46227492281744">Does Guacamole use WebSocket? </a></dt><dt>A.4. <a href="faq.html#idm46227492229056">I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </a></dt><dt>A.5. <a href="faq.html#idm46227492221024">I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </a></dt><dt>A.6. <a href="faq.html#idm46227492217728">Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </a></dt><dt>A.7. <a href="faq.html#idm46227492215552">Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</a></dt><dt>A.8. <a href="faq.html#idm46227492213072">How can I contribute to the project? </a></dt><dt>A.9. <a href="faq.html#idm46227492243760">How can I become an official member of the project? </a></dt><dt>A.10. <a href="faq.html#idm46227492240112">I think I've found a bug. How do I report it? </a></dt><dt>A.11. <a href="faq.html#idm46227492235888">I need help! Where can I find some? </a></dt></dl><table border="0" style="width: 100%;"><colgroup><col align="left" width="1%" /><col /></colgroup><tbody><tr class="question"><td align="left" valign="top"><a id="idm46227492867568"></a><a id="idm46227493046160"></a><p><strong>A.1.</strong></p></td><td align="left" valign="top"><p>Where does the name "Guacamole" come from? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The name was chosen arbitrarily from a random utterance in a conversation with
+                    a member of the project. </p><p>When the project reached the point where it was growing out of the
+                    proof-of-concept phase, and needed a real home on the internet, we needed to
+                    think of a name to register the project under. </p><p>Several acronyms were toyed with and discarded. We tried anagrams, but all
+                    were too wordy and complex. We considered naming the project after a fish or an
+                    animal, and after suggesting the guanaco, James Muehlner, a developer of the
+                    project, suggested (randomly): "guacamole". </p><p>The name had a nice ring, we weren't embarrassed to use it, and it stuck. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492284048"></a><a id="idm46227492283792"></a><p><strong>A.2.</strong></p></td><td align="left" valign="top"><p>What does "clientless" mean? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The term "clientless" means that no specific client is needed. A Guacamole
+                    user needs only have an HTML5 web browser installed, which is exceedingly
+                    common; virtually all modern computers and mobile devices have such a browser
+                    installed by default. </p><p>In this sense, Guacamole is "clientless" in that it does not require any
+                    additional software to be installed beyond what is considered standard for any
+                    computer. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492281744"></a><a id="idm46227492281456"></a><p><strong>A.3.</strong></p></td><td align="left" valign="top"><p>Does Guacamole use WebSocket? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Guacamole uses either WebSocket or plain HTTP, whichever is supported by both
+                    the browser and your servlet container. If WebSocket cannot be used for any
+                    reason, Guacamole will fall back to using HTTP.</p><p>Historically, Guacamole had no WebSocket support at all. This was due to a
+                    lack of browser support and lack of a true standard. Overall, it didn't matter
+                    as there really wasn't any need: the tunnel used by Guacamole when WebSocket is
+                    not available is largely equivalent to WebSocket in terms of efficiency and
+                    latency, and is more compatible with proxies and existing browsers.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492229056"></a><a id="idm46227492228768"></a><p><strong>A.4.</strong></p></td><td align="left" valign="top"><p>I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of the proxy's buffer as it receives
+                    packets. </p><p>Most proxies, including mod_proxy, buffer data received from the server, and
+                    will not flush this data in real-time. Each proxy has an option to force
+                    flushing of each packet automatically, as this is necessary for streaming
+                    applications like Guacamole, but this is usually not enabled by default. </p><p>Because Guacamole depends on streaming to function, a proxy configured to not
+                    automatically flush packets will disrupt the stream to the point that the
+                    connection seems unreasonably slow, or just fails to establish altogether. </p><p>In the case of mod_proxy, this option is <code class="code">flushpackets=on</code>. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492221024"></a><a id="idm46227492220736"></a><p><strong>A.5.</strong></p></td><td align="left" valign="top"><p>I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of your proxy's buffer to avoid
+                    disrupting the stream used by Guacamole. </p><p>If you cannot change the settings of your proxy, using HTTPS instead of HTTP
+                    should solve the problem. Proxies are required to stream HTTPS because of the
+                    nature of SSL. Using HTTPS will allow Guacamole traffic to stream through
+                    proxies unencumbered, even if you cannot access the proxy settings directly. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492217728"></a><a id="idm46227492217440"></a><p><strong>A.6.</strong></p></td><td align="left" valign="top"><p>Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Usually, no. Previous requests for such licensing have been very one-sided and
+                    there would be no direct or indirect benefit to the community and the project.
+                    That said, we handle requests for licensing on a case-by-case basis. In general,
+                    any special licensing has to somehow provide for the community and the
+                    open-source project.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492215552"></a><a id="idm46227492215264"></a><p><strong>A.7.</strong></p></td><td align="left" valign="top"><p>Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Yes. We love to be paid to work on Guacamole, especially if that work remains
+                    open source. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492213072"></a><a id="idm46227492212784"></a><p><strong>A.8.</strong></p></td><td align="left" valign="top"><p>How can I contribute to the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you are a programmer and want to contribute code, Guacamole is open-source
+                    and you are welcome to do so! Just send us your patches. There is no guarantee
+                    that your patch will be added to the upstream source, and all changes are
+                    carefully reviewed. </p><p>If you are not a programmer, but want to help out, feel free to look through
+                    the documentation or try installing Guacamole and test it out. General editing,
+                    documentation contributions, and testing are always helpful. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492243760"></a><a id="idm46227492243472"></a><p><strong>A.9.</strong></p></td><td align="left" valign="top"><p>How can I become an official member of the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The short answer is: "by being asked." </p><p>People are only added as official members of the Guacamole project after their
+                    work has been proven. This usually means you will have contributed code in the
+                    form of patches before, or we know you from extensive testing work, or you
+                    frequently help with documentation, and we are impressed enough that we want you
+                    as part of the project. </p><p>All that said, you do not need to be a member of the project to help out. Feel
+                    free to contribute anything. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492240112"></a><a id="idm46227492239824"></a><p><strong>A.10.</strong></p></td><td align="left" valign="top"><p>I think I've found a bug. How do I report it? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The project tracks in-progress tasks and bugs via the JIRA instance hosted by
+                    the Apache Software Foundation:</p><p><a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE/" target="_top"><code class="uri">https://issues.apache.org/jira/browse/GUACAMOLE/</code></a></p><p>All bugs should be reported there as new issues. This is also where you would
+                    request a new feature. If the bug you found is security-related, we would prefer
+                    to be contacted personally via email, such that the bug can be fixed before
+                    becoming dangerously widely known. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46227492235888"></a><a id="idm46227492235600"></a><p><strong>A.11.</strong></p></td><td align="left" valign="top"><p>I need help! Where can I find some? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you would like help with Apache Guacamole, or wish to help others, we
+                    highly recommend sending an email to the one of the project’s <a class="link" href="http://guacamole.apache.org/support/#mailing-lists" target="_top">mailing lists</a>. <span class="emphasis"><em>You will need to subscribe prior to sending
+                        email to any list.</em></span> All mailing lists are actively filtered for
+                    spam, and any email not originating from a subscriber will bounce.</p><p>There are two primary mailing lists:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-user/" target="_top"><code class="email">&lt;<a class="email" href="mailto:user@guacamole.apache.org">user@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The user list is intended for general questions and discussions
+                                which do not necessarily pertain to development. This list replaces
+                                the old <a class="link" href="https://sourceforge.net/p/guacamole/discussion/" target="_top">SourceForge forums</a> used by Guacamole prior to its
+                                acceptance into the Apache Software Foundation.</p><p><span class="emphasis"><em>If you're not sure which mailing list to use, the user
+                                    list is probably the correct choice.</em></span></p></dd><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-dev/" target="_top"><code class="email">&lt;<a class="email" href="mailto:dev@guacamole.apache.org">dev@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The development list is for development-related discussion
+                                involving people who are contributors to the Apache Guacamole
+                                project (or who wish to become contributors).</p></dd></dl></div></td></tr></tbody></table></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Appendices </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix B. Guacamole protocol reference</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-architecture.html b/doc/1.3.0/gug/guacamole-architecture.html
new file mode 100644
index 0000000..d436229
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-architecture.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Implementation and architecture</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="users-guide.html" title="Part I. User's Guide" /><link rel="next" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Implementation and architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-architecture"></a>Chapter 1. Implementation and architecture</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></div><a id="idm46227498194112" class="indexterm"></a><a id="idm46227498193216" class="indexterm"></a><a id="idm46227498192320" class="indexterm"></a><p>Guacamole is not a self-contained web application and is made up of many parts. The web
+        application is actually intended to be simple and minimal, with the majority of the
+        gruntwork performed by lower-level components.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-arch.png" width="225" /></div></div><p>Users connect to a Guacamole server with their web browser. The Guacamole client, written
+        in JavaScript, is served to users by a webserver within the Guacamole server. Once loaded,
+        this client connects back to the server over HTTP using the Guacamole protocol.</p><p>The web application deployed to the Guacamole server reads the Guacamole protocol and
+        forwards it to guacd, the native Guacamole proxy. This proxy actually interprets the
+        contents of the Guacamole protocol, connecting to any number of remote desktop servers on
+        behalf of the user.</p><p>The Guacamole protocol combined with guacd provide protocol agnosticism: neither the
+        Guacamole client nor the web application need to be aware of what remote desktop protocol is
+        actually being used.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-architecture"></a>The Guacamole protocol </h2></div></div></div><a id="idm46227498100096" class="indexterm"></a><a id="idm46227498099200" class="indexterm"></a><p>The web application does not understand any remote desktop protocol at all. It does
+            not contain support for VNC or RDP or any other protocol supported by the Guacamole
+            stack. It actually only understands the Guacamole protocol, which is a protocol for
+            remote display rendering and event transport. While a protocol with those properties
+            would naturally have the same abilities as a remote desktop protocol, the design
+            principles behind a remote desktop protocol and the Guacamole protocol are different:
+            the Guacamole protocol is not intended to implement the features of a specific desktop
+            environment.</p><p>As a remote display and interaction protocol, Guacamole implements a superset of
+            existing remote desktop protocols. Adding support for a particular remote desktop
+            protocol (like RDP) to Guacamole thus involves writing a middle layer which "translates"
+            between the remote desktop protocol and the Guacamole protocol. Implementing such a
+            translation is no different than implementing any native client, except that this
+            particular implementation renders to a remote display rather than a local one.</p><p>The middle layer that handles this translation is guacd.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd"></a>guacd</h2></div></div></div><a id="idm46227498186960" class="indexterm"></a><a id="idm46227498186064" class="indexterm"></a><p>guacd is the heart of Guacamole which dynamically loads support for remote desktop
+            protocols (called "client plugins") and connects them to remote desktops based on
+            instructions received from the web application.</p><p>guacd is a daemon process which is installed along with Guacamole and runs in the
+            background, listening for TCP connections from the web application. guacd also does not
+            understand any specific remote desktop protocol, but rather implements just enough of
+            the Guacamole protocol to determine which protocol support needs to be loaded and what
+            arguments must be passed to it. Once a client plugin is loaded, it runs independently of
+            guacd and has full control of the communication between itself and the web application
+            until the client plugin terminates.</p><a id="idm46227498184336" class="indexterm"></a><p>guacd and all client plugins depend on a common library, libguac, which makes
+            communication via the Guacamole protocol easier and a bit more abstract.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-application"></a>The web application</h2></div></div></div><a id="idm46227498180896" class="indexterm"></a><p>The part of Guacamole that a user actually interacts with is the web
+            application.</p><p>The web application, as mentioned before, does not implement any remote desktop
+            protocol. It relies on guacd, and implements nothing more than a spiffy web interface
+            and authentication layer.</p><p>We chose to implement the server side of the web application in Java, but there's no
+            reason that it can't be written in a different language. In fact, because Guacamole is
+            intended be an API, we encourage this.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="realmint"></a>RealMint</h2></div></div></div><a id="idm46227498176896" class="indexterm"></a><p>Guacamole is now a generalized remote desktop gateway, but this was not always the
+            case. Guacamole began as a purely text-based Telnet client written in JavaScript called
+                <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span> ("RealMint" is an anagram for "terminal"). It was written
+            mainly as a demonstration and, while intended to be useful, its main claim to fame was
+            only that it was pure JavaScript.</p><p>The tunnel used by RealMint was written in PHP. In contrast to Guacamole's HTTP
+            tunnel, RealMint's tunnel used only simple long-polling and was inefficient. RealMint
+            had a decent keyboard implementation which lives on now in parts of Guacamole's keyboard
+            code, but this was really the extent of RealMint's features and usability.</p><p>Given that it was just an implementation of a legacy protocol, and that several other
+            JavaScript terminal emulators exist, most of which well-established and stable, the
+            project was dropped.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="vnc-client"></a>VNC Client</h2></div></div></div><p>Once the developers learned of the HTML5 canvas tag, and saw that it was already
+            implemented in Firefox and Chrome, work started instead on a proof-of-concept JavaScript
+            VNC client.</p><p>This client was purely JavaScript with a Java server component, and worked by
+            translating VNC into an XML-based version of the same. Its development was naturally
+            driven by VNC's features, and its scope was limited to forwarding a single connection to
+            a set of users. Although relatively slow, the proof-of-concept worked well enough that
+            the project needed an online place to live, and was registered with SourceForge as
+            "Guacamole" - an HTML5 VNC client.</p><p>As Guacamole grew and became more than a proof-of-concept, the need for speed
+            increased, and the old RealMint-style long polling was dropped, as was the use of
+            XML.</p><p>As WebSocket could not be trusted to be supported at the time, and Java had no
+            WebSocket standard for servlets, an equivalent HTTP-based tunnel was developed. This
+            tunnel is still used today if WebSocket cannot be used for any reason.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="gateway"></a>Remote Desktop Gateway</h2></div></div></div><p>A faster text-based protocol was developed which could present the features of
+            multiple remote desktop protocols, not just VNC. The entire system was rearchitected
+            into a standard daemon, guacd, and a common library, libguac, which drove both the
+            daemon and protocol support, which became extendable.</p><p>The scope of the project expanded from an adequate VNC client to a performant HTML5
+            remote desktop gateway and general API. In its current state, Guacamole can be used as a
+            central gateway to access any number of machines running different remote desktop
+            servers. It provides extendable authentication, and in the case you need something more
+            specialized, a general API for HTML5-based remote access.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. User's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Installing Guacamole natively</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-common-js.html b/doc/1.3.0/gug/guacamole-common-js.html
new file mode 100644
index 0000000..cbf04cc
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-common-js.html
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. guacamole-common-js</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common.html" title="Chapter 21. guacamole-common" /><link rel="next" href="guacamole-ext.html" title="Chapter 23. guacamole-ext" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. guacamole-common-js</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common-js"></a>Chapter 22. guacamole-common-js</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-mouse">Mouse</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-touch">Touch</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-keyboard">Keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#keyboard-layouts">Keyboard layouts</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#displaying-osk">Displaying the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#styling-the-keyboard">Styling the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#osk-event-handling">Handling key events</a></span></dt></dl></dd></dl></div><a id="idm46227492897104" class="indexterm"></a><a id="idm46227492895760" class="indexterm"></a><p>The Guacamole project provides a JavaScript API for interfacing with
+        other components that conform to the design of Guacamole, such as
+        projects using libguac or guacamole-common. This API is called
+        guacamole-common-js.</p><p>guacamole-common-js provides a JavaScript implementation of a
+        Guacamole client, as well as tunneling mechanisms for getting protocol
+        data out of JavaScript and into guacd or the server side of a web
+        application.</p><p>For convenience, it also provides mouse and keyboard abstraction objects that translate
+        JavaScript mouse, touch, and keyboard events into consistent data that Guacamole can more
+        easily digest. The extendable on-screen keyboard that was developed for the Guacamole web
+        application is also included.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-client"></a>Guacamole client</h2></div></div></div><p>The main benefit to using the JavaScript API is the full Guacamole
+            client implementation, which implements all Guacamole instructions,
+            and makes use of the tunnel implementations provided by both the
+            JavaScript and Java APIs.</p><p>Using the Guacamole client is straightforward. The client, like
+            all other objects within the JavaScript API, is within the
+                <code class="code">Guacamole</code> namespace. It is instantiated given an
+            existing, unconnected tunnel:</p><div class="informalexample"><pre class="programlisting">var client = new Guacamole.Client(tunnel);</pre></div><p>Once you have the client, it won't immediately appear within the
+            DOM. You need to add its display element manually:</p><div class="informalexample"><pre class="programlisting">document.body.appendChild(client.getDisplay().getElement());</pre></div><p>At this point, the client will be visible, rendering all updates
+            as soon as they are received through the tunnel.</p><div class="informalexample"><pre class="programlisting">client.connect();</pre></div><p>It is possible to pass arbitrary data to the tunnel during
+            connection which can be used for authentication or for choosing a
+            particular connection. When the <code class="methodname">connect()</code>
+            function of the Guacamole client is called, it in turn calls the
+                <code class="methodname">connect()</code> function of the tunnel
+            originally given to the client, establishing a connection.</p><div class="important"><h3 class="title">Important</h3><p>When creating the <code class="classname">Guacamole.Client</code>, the
+                tunnel used must not already be connected. The
+                    <code class="classname">Guacamole.Client</code> will call the
+                    <code class="methodname">connect()</code> function for you when its
+                own <code class="methodname">connect()</code> function is invoked. If
+                the tunnel is already connected when it is given to the
+                    <code class="classname">Guacamole.Client</code>, connection may not
+                work at all.</p></div><p>In general, all instructions available within the Guacamole
+            protocol are automatically handled by the Guacamole client,
+            including instructions related to audio and video. The only
+            instructions which you must handle yourself are "name" (used to name
+            the connection), "clipboard" (used to update clipboard data on the
+            client side), and "error" (used when something goes wrong
+            server-side). Each of these instructions has a corresponding event
+            handler; you need only supply functions to handle these events. If
+            any of these event handlers are left unset, the corresponding
+            instructions are simply ignored.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>Both the Java and JavaScript API implement corresponding ends of
+            an HTTP tunnel, based on
+            <code class="classname">XMLHttpRequest</code>.</p><p>The tunnel is a true stream - there is no polling. An initial
+            request is made from the JavaScript side, and this request is
+            handled on the Java side. While this request is open, data is
+            streamed along the connection, and instructions within this stream
+            are handled as soon as they are received by the client.</p><p>While data is being streamed along this existing connection, a
+            second connection attempt is made. Data continues to be streamed
+            along the original connection until the server receives and handles
+            the second request, at which point the original connection closes
+            and the stream is transferred to the new connection.</p><p>This process repeats, alternating between active streams, thus
+            creating an unbroken sequence of instructions, while also allowing
+            JavaScript to free any memory used by the previously active
+            connection.</p><p>The tunnel is created by supplying the relative URL to the
+            server-side tunnel servlet:</p><div class="informalexample"><pre class="programlisting">var tunnel = new Guacamole.Tunnel("tunnel");</pre></div><p>Once created, the tunnel can be passed to a
+                <code class="classname">Guacamole.Client</code> for use in a Guacamole
+            connection.</p><p>The tunnel actually takes care of the Guacamole protocol parsing
+            on behalf of the client, triggering "oninstruction" events for every
+            instruction received, splitting each element into elements of an
+            array so that the client doesn't have to.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="input-abstraction"></a>Input abstraction</h2></div></div></div><p>Browsers can be rather finicky when it comes to keyboard and mouse
+            input, not to mention touch events. There is little agreement on
+            which keyboard events get fired when, and what detail about the
+            event is made available to JavaScript. Touch and mouse events can
+            also cause confusion, as most browsers will generate
+                <span class="emphasis"><em>both</em></span> events when the user touches the
+            screen (for compatibility with JavaScript code that only handles
+            mouse events), making it more difficult for applications to support
+            both mouse and touch independently.</p><p>The Guacamole JavaScript API abstracts mouse, keyboard, and touch
+            interaction, providing several helper objects which act as an
+            abstract interface between you and the browser events.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-mouse"></a>Mouse</h3></div></div></div><p>Mouse event abstraction is provided by the
+                    <code class="classname">Guacamole.Mouse</code> object. Given an
+                arbitrary DOM element, <code class="classname">Guacamole.Mouse</code>
+                triggers <span class="property">onmousedown</span>,
+                    <span class="property">onmousemove</span>, and
+                    <span class="property">onmouseup</span> events which are consistent
+                across browsers. This object only response. to true mouse
+                events. Mouse events which are actually the result of touch
+                events are ignored.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var mouse = new Guacamole.Mouse(element);
+
+mouse.onmousedown =
+mouse.onmousemove =
+mouse.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>The handles of each event are given an instance of
+                    <code class="classname">Guacamole.Mouse.State</code> which
+                represents the current state of the mouse, containing the state
+                of each button (including the scroll wheel) as well as the X and
+                Y coordinates of the pointer in pixels.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-touch"></a>Touch</h3></div></div></div><p>Touch event abstraction is provided by either
+                    <code class="classname">Guacamole.Touchpad</code> (emulates a
+                touchpad to generate artificial mouse events) or
+                    <code class="classname">Guacamole.Touchscreen</code> (emulates a
+                touchscreen, again generating artificial mouse events).
+                Guacamole uses the touchpad emulation, as this provides the most
+                flexibility and mouse-like features, including scrollwheel and
+                clicking with different buttons, but your preferences may
+                differ.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var touch = new Guacamole.Touchpad(element); // or Guacamole.Touchscreen
+
+touch.onmousedown =
+touch.onmousemove =
+touch.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>Note that even though these objects are touch-specific, they
+                still provide mouse events. The state object given to the event
+                handlers of each event is still an instance of
+                    <code class="classname">Guacamole.Mouse.State</code>.</p><p>Ultimately, you could assign the same event handler to all the
+                events of both an instance of
+                    <code class="classname">Guacamole.Mouse</code> as well as
+                    <code class="classname">Guacamole.Touchscreen</code> or
+                    <code class="classname">Guacamole.Touchpad</code>, and you would
+                magically gain mouse and touch support. This support, being
+                driven by the needs of remote desktop, is naturally geared
+                around the mouse and providing a reasonable means of interacting
+                with it. For an actual mouse, events are translated simply and
+                literally, while touch events go through additional emulation
+                and heuristics. From the perspective of the user and the code,
+                this is all transparent.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-keyboard"></a>Keyboard</h3></div></div></div><p>Keyboard events in Guacamole are abstracted with the
+                    <code class="classname">Guacamole.Keyboard</code> object as only
+                keyup and keydown events; there is no keypress like there is in
+                JavaScript. Further, all the craziness of keycodes vs. scancodes
+                vs. key identifiers normally present across browsers is
+                abstracted away. All your event handlers will see is an X11
+                keysym, which represent every key unambiguously. Conveniently,
+                X11 keysyms are also what the Guacamole protocol requires, so if
+                you want to use <code class="classname">Guacamole.Keyboard</code> to
+                drive key events sent over the Guacamole protocol, everything
+                can be connected directly.</p><p>Just like the other input abstraction objects,
+                    <code class="classname">Guacamole.Keyboard</code> requires a DOM
+                element as an event target. Only key events directed at this
+                element will be handled.</p><div class="informalexample"><pre class="programlisting">var keyboard = new Guacamole.Keyboard(document);
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div><p>In this case, we are using <code class="classname">document</code> as
+                the event target, thus receiving all key events while the
+                browser window (or tab) has focus.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="on-screen-keyboard"></a>On-screen keyboard</h2></div></div></div><p>The Guacamole JavaScript API also provides an extendable on-screen
+            keyboard, <code class="classname">Guacamole.OnScreenKeyboard</code>, which
+            requires the URL of an XML file describing the keyboard layout. The
+            on-screen keyboard object provides no hard-coded layout information;
+            the keyboard layout is described entirely within the XML layout
+            file.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="keyboard-layouts"></a>Keyboard layouts</h3></div></div></div><p>The keyboard layout XML included in the Guacamole web
+                application would be a good place to start regarding how these
+                layout files are written, but in general, the keyboard is simply
+                a set of rows or columns, denoted with <code class="code">&lt;row&gt;</code> and
+                    <code class="code">&lt;column&gt;</code> tags respectively, where each can
+                be nested within the other as desired.</p><p>Each key is represented with a <code class="code">&lt;key&gt;</code> tag, but
+                this is not what the user sees, nor what generates the key
+                event. Each key contains any number of <code class="code">&lt;cap&gt;</code>
+                tags, which represent the visible part of the key. The cap
+                describes which X11 keysym will be sent when the key is pressed.
+                Each cap can be associated with any combination of arbitrary
+                modifier flags which dictate when that cap is active.</p><p>For example:</p><div class="informalexample"><pre class="programlisting">&lt;keyboard lang="en_US" layout="example" size="5"&gt;
+    &lt;row&gt;
+        &lt;key size="4"&gt;
+            &lt;cap modifier="shift" keysym="0xFFE1"&gt;Shift&lt;/cap&gt;
+        &lt;/key&gt;
+        &lt;key&gt;
+            &lt;cap&gt;a&lt;/cap&gt;
+            &lt;cap if="shift"&gt;A&lt;/cap&gt;
+        &lt;/key&gt;
+    &lt;/row&gt;
+&lt;/keyboard&gt;</pre></div><p>Here we have a very simple keyboard which defines only two
+                keys: "shift" (a modifier) and the letter "a". When "shift" is
+                pressed, it sets the "shift" modifier, affecting other keys in
+                the keyboard. The "a" key has two caps: one lowercase (the
+                default) and one uppercase (which requires the shift modifier to
+                be active).</p><p>Notice that the shift key needed the keysym explicitly
+                specified, while the "a" key did not. This is because the
+                on-screen keyboard will automatically derive the correct keysym
+                from the text of the key cap if the text contains only a single
+                character.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="displaying-osk"></a>Displaying the keyboard</h3></div></div></div><p>Once you have a keyboard layout available, adding an on-screen
+                keyboard to your application is simple:</p><div class="informalexample"><pre class="programlisting">// Add keyboard to body
+var keyboard = new Guacamole.OnScreenKeyboard("path/to/layout.xml");
+document.body.appendChild(keyboard.getElement());
+
+// Set size of keyboard to 100 pixels
+keyboard.resize(100);</pre></div><p>Here, we have explicitly specified the width of the keyboard
+                as 100 pixels. Normally, you would determine this by inspecting
+                the width of the containing component, or by deciding on a
+                reasonable width beforehand. Once the width is given, the height
+                of the keyboard is determined based on the arrangement of each
+                row.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="styling-the-keyboard"></a>Styling the keyboard</h3></div></div></div><p>While the <code class="classname">Guacamole.OnScreenKeyboard</code>
+                object will handle most of the layout, you will still need to
+                style everything yourself with CSS to get the elements to render
+                properly and the keys to change state when clicked or activated.
+                It defines several CSS classes, which you will need to manually
+                style to get things looking as desired:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="classname">guac-keyboard</code></span></dt><dd><p>This class is assigned to the root element
+                            containing the entire keyboard, returned by
+                                <code class="methodname">getElement()</code>,</p></dd><dt><span class="term"><code class="classname">guac-keyboard-row</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each row.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-column</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each column.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-gap</code></span></dt><dd><p>Assigned to any <code class="code">div</code> elements created
+                            as a result of <code class="code">&lt;gap&gt;</code> tags in the
+                            keyboard layout. <code class="code">&lt;gap&gt;</code> tags are
+                            intended to behave as keys with no visible styling
+                            or caps.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key-container</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            contains a key, and provides that key with its
+                            required dimensions. It is this element that will be
+                            scaled relative to the size specified in the layout
+                            XML and the size given to the <code class="code">resize()</code>
+                            function.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            represents the actual key, not the cap. This element
+                            will not directly contain text, but it will contain
+                            all caps that this key can have. With clever CSS
+                            rules, you can take advantage of this and cause
+                            inactive caps to appear on the key in a corner (for
+                            example), or hide them entirely.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-cap</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element
+                            representing a key cap. Each cap is a child of its
+                            corresponding key, and it is up to the author of the
+                            CSS rules to hide or show or reposition each cap
+                            appropriately. Each cap will contain the display
+                            text defined within the <code class="code">&lt;cap&gt;</code>
+                            element in the layout XML.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-requires-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the cap element when that cap requires a
+                            specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-uses-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the key element when any cap contained
+                            within it requires a specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-modifier-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to and removed from the root keyboard
+                            element when a modifier key is activated or
+                            deactivated respectively.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-pressed</code></span></dt><dd><p>Added to and removed from any key element as it is
+                            pressed and released respectively.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>The CSS rules required for the on-screen keyboard to work
+                    as expected can be quite complex. Looking over the CSS rules
+                    used by the on-screen keyboard in the Guacamole web
+                    application would be a good place to start to see how the
+                    appearance of each key can be driven through the simple
+                    class changes described above.</p><p>Inspecting the elements of an active on-screen keyboard
+                    within the Guacamole web application with the developer
+                    tools of your favorite browser is also a good idea.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="osk-event-handling"></a>Handling key events</h3></div></div></div><p>Key events generated by the on-screen keyboard are identical
+                to those of <code class="classname">Guacamole.Keyboard</code> in that
+                they consist only of a single X11 keysym. Only keyup and keydown
+                events exist, as before; there is no keypress event.</p><div class="informalexample"><pre class="programlisting">// Assuming we have an instance of Guacamole.OnScreenKeyboard already
+// called "keyboard"
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 21. <span class="package">guacamole-common</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 23. guacamole-ext</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-common.html b/doc/1.3.0/gug/guacamole-common.html
new file mode 100644
index 0000000..7ac7a2c
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-common.html
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. guacamole-common</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="libguac.html" title="Chapter 20. libguac" /><link rel="next" href="guacamole-common-js.html" title="Chapter 22. guacamole-common-js" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. <span class="package">guacamole-common</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common"></a>Chapter 21. <span class="package">guacamole-common</span></h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-reading-protocol"><code class="classname">GuacamoleReader</code></a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-writing-protocol"><code class="classname">GuacamoleWriter</code></a></span></dt></dl></dd></dl></div><a id="idm46227496435280" class="indexterm"></a><a id="idm46227495991600" class="indexterm"></a><p>The Java API provided by the Guacamole project is called guacamole-common. It provides a
+        basic means of tunneling data between the JavaScript client provided by guacamole-common-js
+        and the native proxy daemon, guacd, and for dealing with the Guacamole protocol. The purpose
+        of this library is to facilitate the creation of custom tunnels between the JavaScript
+        client and guacd, allowing your Guacamole-driven web application to enforce its own security
+        model, if any, and dictate exactly what connections are established.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>The Guacamole Java API implements the HTTP tunnel using a servlet
+            called <code class="classname">GuacamoleHTTPTunnelServlet</code>. This
+            servlet handles all requests coming to it over HTTP from the
+            JavaScript client, and translated them into connect, read, or write
+            requests, which each get dispatched to the
+                <code class="methodname">doConnect()</code>,
+                <code class="methodname">doRead()</code>, and
+                <code class="methodname">doWrite()</code> functions accordingly.</p><p>Normally, you wouldn't touch the <code class="methodname">doRead()</code>
+            and <code class="methodname">doWrite()</code> functions, as these have
+            already been written to properly handle the requests of the
+            JavaScript tunnel, and if you feel the need to touch these
+            functions, you are probably better off writing your own tunnel
+            implementation, although such a thing is difficult to do in a
+            performant way.</p><p>When developing an application based on the Guacamole API, you
+            should use <code class="classname">GuacamoleHTTPTunnelServlet</code> by
+            extending it, implementing your own version of
+                <code class="methodname">doConnect()</code>, which is the only abstract
+            function it defines. The tutorial later in this book demonstrating
+            how to write a Guacamole-based web application shows the basics of
+            doing this, but generally, <code class="methodname">doConnect()</code> is
+            an excellent place for authentication or other validation, as it is
+            the responsibility of <code class="methodname">doConnect()</code> to create
+            (or not create) the actual tunnel. If
+                <code class="methodname">doConnect()</code> does not create the tunnel,
+            communication between the JavaScript client and guacd cannot take
+            place, which is an ideal power to have as an authenticator.</p><p>The <code class="methodname">doConnect()</code> function is expected to return a new
+                <code class="classname">GuacamoleTunnel</code>, but it is completely up to the
+            implementation to decide how that tunnel is to be created. The already-implemented parts
+            of <code class="classname">GuacamoleHTTPTunnelServlet</code> then return the unique identifier
+            of this tunnel to the JavaScript client, allowing its own tunnel implementation to
+            continue to communicate with the tunnel existing on the Java side.</p><p>Instances of <code class="classname">GuacamoleTunnel</code> are created associated with a
+                <code class="classname">GuacamoleSocket</code>, which is the abstract interface surrounding
+            the low-level connection to guacd. Overall, there is a socket
+                (<code class="classname">GuacamoleSocket</code>) which provides a TCP connection to guacd.
+            This socket is exposed to <code class="classname">GuacamoleTunnel</code>, which provides
+            abstract protocol access around what is actually (but secretly, through the abstraction
+            of the API) a TCP socket.</p><p>The Guacamole web application extends this tunnel servlet in order
+            to implement authentication at the lowest possible level,
+            effectively prohibiting communication between the client and any
+            remote desktops unless they have properly authenticated. Your own
+            implementation can be considerably simpler, especially if you don't
+            need authentication:</p><div class="informalexample"><pre class="programlisting">public class MyGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Connect to guacd here (this is a STUB)
+        GuacamoleSocket socket;
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);
+
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-protocol-usage"></a>Using the Guacamole protocol</h2></div></div></div><p>guacamole-common provides basic low-level support for the
+            Guacamole protocol. This low-level support is leveraged by the HTTP
+            tunnel implementation to satisfy the requirements of the JavaScript
+            client implementation, as the JavaScript client expects the
+            handshake procedure to have already taken place. This support exists
+            through the <code class="classname">GuacamoleReader</code> and
+                <code class="classname">GuacamoleWriter</code> classes, which are
+            similar to Java's <code class="classname">Reader</code> and
+                <code class="classname">Writer</code> classes, except that they deal
+            with the Guacamole protocol specifically, and thus have slightly
+            different contracts.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-reading-protocol"></a><code class="classname">GuacamoleReader</code></h3></div></div></div><p><code class="classname">GuacamoleReader</code> provides a very basic
+                    <code class="methodname">read()</code> function which is required
+                to return one or more complete instructions in a
+                    <span class="type">char</span> array. It also provides the typical
+                    <code class="methodname">available()</code> function, which informs
+                you whether <code class="methodname">read()</code> is likely to block
+                the next time it is called, and an even more abstract version of
+                    <code class="methodname">read()</code> called
+                    <code class="methodname">readInstruction()</code> which returns one
+                instruction at a time, wrapped within a
+                    <code class="classname">GuacamoleInstruction</code> instance.</p><p>Normally, you would not need to use this class yourself. It is
+                used by <code class="classname">ConfiguredGuacamoleSocket</code> to
+                complete the Guacamole protocol handshake procedure, and it is
+                used by <code class="classname">GuacamoleHTTPTunnelServlet</code> within
+                    <code class="methodname">doRead()</code> to implement the reading
+                half of the tunnel.</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleReader</code> is
+                    <code class="classname">ReaderGuacamoleReader</code>, which wraps a
+                Java <code class="classname">Reader</code>, using that as the source for
+                data to parse into Guacamole instructions. Again, you would not
+                normally directly use this class, nor instantiate it yourself. A
+                working, concrete instance of
+                    <code class="classname">GuacamoleReader</code> can be retrieved from
+                any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-writing-protocol"></a><code class="classname">GuacamoleWriter</code></h3></div></div></div><p><code class="classname">GuacamoleWriter</code> provides a very basic
+                    <code class="methodname">write()</code> function and a more
+                abstract version called
+                    <code class="methodname">writeInstruction()</code> which writes
+                instances of <code class="classname">GuacamoleInstruction</code>. These
+                functions are analogous to the <code class="methodname">read()</code>
+                and <code class="methodname">readInstruction()</code> functions
+                provided by <code class="classname">GuacamoleReader</code>, and have
+                similar restrictions: the contract imposed by
+                    <code class="methodname">write()</code> requires that written
+                instructions be complete</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleWriter</code> is
+                    <code class="classname">WriterGuacamoleWriter</code>, which wraps a
+                Java <code class="classname">Writer</code>, using that as the
+                destination for Guacamole instruction data, but you would not
+                normally directly use this class, nor instantiate it yourself.
+                It is used by <code class="classname">ConfiguredGuacamoleSocket</code>
+                to complete the Guacamole protocol handshake procedure, and it
+                is used by <code class="classname">GuacamoleHTTPTunnelServlet</code>
+                within <code class="methodname">doWrite()</code> to implement the
+                writing half of the tunnel.</p><p>If necessary, a <code class="classname">GuacamoleWriter</code> can be
+                retrieved from any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>, but in most cases,
+                the classes provided by the Guacamole Java API which already use
+                    <code class="classname">GuacamoleWriter</code> will be
+                sufficient.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. libguac </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 22. guacamole-common-js</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-docker.html b/doc/1.3.0/gug/guacamole-docker.html
new file mode 100644
index 0000000..dde3f80
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-docker.html
@@ -0,0 +1,442 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Installing Guacamole with Docker</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" /><link rel="next" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Installing Guacamole with Docker</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-docker"></a>Chapter 3. Installing Guacamole with Docker</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-guacamole">Running <span class="package">guacd</span> for use by the Guacamole Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-external">Running <span class="package">guacd</span> for use by services outside Docker</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-config-via-env">Configuring Guacamole when using Docker</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacd">Connecting Guacamole to <span class="package">guacd</span></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-mysql">MySQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-postgresql">PostgreSQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-ldap">LDAP authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-header-auth">Header Authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacamole-home">Custom extensions and <code class="envar">GUACAMOLE_HOME</code></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#verifying-guacamole-docker">Verifying the Guacamole install</a></span></dt></dl></dd></dl></div><a id="idm46227497919776" class="indexterm"></a><p>Guacamole can be deployed using Docker, removing the need to build
+            <span class="package">guacamole-server</span> from source or configure the web application
+        manually. The Guacamole project provides officially-supported Docker images for both
+        Guacamole and <span class="package">guacd</span> which are kept up-to-date with each release.</p><p>A typical Docker deployment of Guacamole will involve three separate containers, linked
+        together at creation time:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">guacamole/guacd</code></span></dt><dd><p>Provides the <span class="package">guacd</span> daemon, built from the released
+                        <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH,
+                    telnet, and Kubernetes.</p></dd><dt><span class="term"><code class="systemitem">guacamole/guacamole</code></span></dt><dd><p>Provides the Guacamole web application running within Tomcat 8 with support
+                    for WebSocket. The configuration necessary to connect to
+                        <span class="package">guacd</span>, MySQL, PostgreSQL, LDAP, etc. will be generated
+                    automatically when the image starts based on Docker links or environment
+                    variables.</p></dd></dl></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">mysql</code> or <code class="systemitem">postgresql</code></span></dt><dd><p>Provides the database that Guacamole will use for authentication and storage
+                    of connection configuration data.</p></dd></dl></div><p>This separation is important, as it facilitates upgrades and maintains proper separation
+        of concerns. With the database separate from Guacamole and <span class="package">guacd</span>, those
+        containers can be freely destroyed and recreated at will. The only container which must
+        persist data through upgrades is the database.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd-docker-image"></a>Running the <span class="package">guacd</span> Docker image</h2></div></div></div><p>The <span class="package">guacd</span> Docker image is built from the released
+                <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH, telnet,
+            and Kubernetes. Common pitfalls like installing the required dependencies, installing
+            fonts for SSH, telnet, or Kubernetes, and ensuring the FreeRDP plugins are installed to
+            the correct location are all taken care of. It will simply just work.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-guacamole"></a>Running <span class="package">guacd</span> for use by the Guacamole Docker image</h3></div></div></div><p>When running the <span class="package">guacd</span> image with the intent of linking to a
+                Guacamole container, no ports need be exposed on the network. Access to these ports
+                will be handled automatically by Docker during linking, and the Guacamole image will
+                properly detect and configure the connection to <span class="package">guacd</span>.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d guacamole/guacd</pre></div><p>When run in this manner, <span class="package">guacd</span> will be listening on its default
+                port 4822, but this port will only be available to Docker containers that have been
+                explicitly linked to
+                <code class="varname"><em class="replaceable"><code>some-guacd</code></em></code>.</p><p>The log level of guacd can be controlled with the <code class="varname">GUACD_LOG_LEVEL</code> environment variable.  The
+                default value is <code class="varname"><em class="replaceable"><code>info</code></em></code>, and can be set to any of the
+                valid settings for the guacd log flag (-L).</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run -e GUACD_LOG_LEVEL=<em class="replaceable"><code>debug</code></em> -d guacamole/guacd</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-external"></a>Running <span class="package">guacd</span> for use by services outside Docker</h3></div></div></div><p>If you are not going to use the Guacamole image, you can still leverage the
+                    <span class="package">guacd</span> image for ease of installation and maintenance. By
+                exposing the <span class="package">guacd</span> port, 4822, services external to Docker will
+                be able to access <span class="package">guacd</span>.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Take great care when doing this</em></span> -
+                        <span class="package">guacd</span> is a passive proxy and does not perform any kind of
+                    authentication.</p><p>If you do not properly isolate <span class="package">guacd</span> from untrusted parts
+                    of your network, malicious users may be able to use <span class="package">guacd</span> as
+                    a jumping point to other systems.</p></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d -p 4822:4822 guacamole/guacd</pre></div><p><span class="package">guacd</span> will now be listening on port 4822, and Docker will
+                expose this port on the same server hosting Docker. Other services, such as an
+                instance of Tomcat running outside of Docker, will be able to connect to
+                    <span class="package">guacd</span> directly.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-docker-image"></a>The Guacamole Docker image</h2></div></div></div><p>The Guacamole Docker image is built on top of a standard Tomcat 8 image and takes care
+            of all configuration automatically. The configuration information required for
+                <span class="package">guacd</span> and the various authentication mechanisms are specified
+            with environment variables or Docker links given when the container is created.</p><div class="important"><h3 class="title">Important</h3><p>If using <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a> or <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a> for authentication, <span class="emphasis"><em>you will need to initialize the
+                    database manually</em></span>. Guacamole will not automatically create its own
+                tables, but SQL scripts are provided to do this.</p></div><p>Once the Guacamole image is running, Guacamole will be accessible at
+                    <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+            hosting Docker.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-config-via-env"></a>Configuring Guacamole when using Docker</h3></div></div></div><p>When running Guacamole using Docker, the traditional approach to configuring 
+                    Guacamole by editing <code class="filename">guacamole.properties</code> is less 
+                    convenient. When using Docker, you may wish to make use of the
+                    <em class="parameter"><code>enable-environment-properties</code></em> configuration 
+                    property, which allows you to specify values for arbitrary Guacamole 
+                    configuration properties using environment variables. This is covered in 
+                    <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacd"></a>Connecting Guacamole to <span class="package">guacd</span></h3></div></div></div><p>The Guacamole Docker image needs to be able to connect to <span class="package">guacd</span>
+                to establish remote desktop connections, just like any other Guacamole deployment.
+                The connection information needed by Guacamole will be provided either via a Docker
+                link or through environment variables.</p><p>If you will be using Docker to provide <span class="package">guacd</span>, and you wish to
+                use a Docker link to connect the Guacamole image to <span class="package">guacd</span>, the
+                connection details are implied by the Docker link:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-guacd</code></em>:guacd</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre><p>If you are not using Docker to provide <span class="package">guacd</span>, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACD_HOSTNAME</code></td><td>
+                                    <p>The hostname of the <span class="package">guacd</span> instance to
+                                        use to establish remote desktop connections. <span class="emphasis"><em>This
+                                            is required if you are not using Docker to provide
+                                                <span class="package">guacd</span>.</em></span></p>
+                                </td></tr><tr><td><code class="envar">GUACD_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                            <span class="package">guacd</span>. This environment variable is
+                                        optional. If not provided, the standard
+                                            <span class="package">guacd</span> port of 4822 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">GUACD_HOSTNAME</code> and, if necessary, <code class="envar">GUACD_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>-e GUACD_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \
+    -e GUACD_PORT=<em class="replaceable"><code>4822</code></em></em></span>             \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p><span class="emphasis"><em>A connection to <span class="package">guacd</span> is not the only thing required
+                    for Guacamole to work</em></span>; some authentication mechanism needs to be
+                configured, as well. <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a>, <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a>, and <a class="link" href="guacamole-docker.html#guacamole-docker-ldap" title="LDAP authentication">LDAP</a> are supported for this, and are
+                described in more detail in the sections below. If the required configuration
+                options for at least one authentication mechanism are not provided, the Guacamole
+                image will not be able to start up, and you will see an error.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-mysql"></a>MySQL authentication</h3></div></div></div><p>To use Guacamole with the MySQL authentication backend, you will need either a
+                Docker container running the <code class="systemitem">mysql</code> image, or network access
+                to a working installation of MySQL. The connection to MySQL can be specified using
+                either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-mysql"></a>Initializing the MySQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh MySQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within MySQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Create a user for Guacamole within MySQL with access to this database,
+                            such as
+                                <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>mysql</strong></span> utility included
+                    with MySQL is documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-connecting"></a>Connecting Guacamole to MySQL</h4></div></div></div><p>If your MySQL database is provided by another Docker container, and you wish
+                    to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-mysql</code></em>:mysql</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your MySQL database, you will need to
+                    provide the network connection information yourself using additional environment
+                    variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your MySQL
+                                        database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        MySQL. This environment variable is optional. If not
+                                        provided, the standard MySQL port of 3306 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">MYSQL_HOSTNAME</code> and, if necessary, <code class="envar">MYSQL_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e MYSQL_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for MySQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-required-vars"></a>Required environment
+                    variables</h4></div></div></div><p>Using MySQL for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will connect to MySQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        MySQL.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to MySQL as <code class="envar">MYSQL_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-postgresql"></a>PostgreSQL authentication</h3></div></div></div><p>To use Guacamole with the PostgreSQL authentication backend, you will need either
+                a Docker container running the <code class="systemitem">postgres</code> image, or network
+                access to a working installation of PostgreSQL. The connection to PostgreSQL can be
+                specified using either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-postgresql"></a>Initializing the PostgreSQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh PostgreSQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within PostgreSQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li><li class="step"><p>Create a user for Guacamole within PostgreSQL with access to the
+                            tables and sequences of this database, such as
+                                    <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>psql</strong></span> and
+                        <span class="command"><strong>createdb</strong></span> utilities included with PostgreSQL is documented
+                    in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-connecting"></a>Connecting Guacamole to PostgreSQL</h4></div></div></div><p>If your PostgreSQL database is provided by another Docker container, and you
+                    wish to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-postgres</code></em>:postgres</em></span>  \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your PostgreSQL database, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your PostgreSQL
+                                            database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        PostgreSQL. This environment variable is optional. If not
+                                        provided, the standard PostgreSQL port of 5432 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">POSTGRES_HOSTNAME</code> and, if necessary,
+                        <code class="envar">POSTGRES_PORT</code> environment variables can thus be used in place
+                    of a Docker link if using a Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>   \
+    --link some-guacd:guacd           \
+    <span class="emphasis"><em>-e POSTGRES_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em> \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for PostgreSQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-required-vars"></a>Required environment variables</h4></div></div></div><p>Using PostgreSQL for authentication requires additional configuration
+                    parameters specified via environment variables. These variables collectively
+                    describe how Guacamole will connect to PostgreSQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        PostgreSQL.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to PostgreSQL as <code class="envar">POSTGRES_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div><p>Optional environment variables may also be used to override Guacamole's
+                    default behavior with respect to timeouts at the database and network level:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_DEFAULT_STATEMENT_TIMEOUT</code></td><td>
+                                    <p>The number of seconds the driver will wait for a
+                                        response from the database, before aborting the query.
+                                        A value of 0 (the default) means the timeout is disabled.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_SOCKET_TIMEOUT</code></td><td>
+                                    <p>The number of seconds to wait for socket read
+                                        operations. If reading from the server takes longer than
+                                        this value, the connection will be closed. This can be used
+                                        to handle network problems such as a dropped connection to
+                                        the database. Similar to 
+                                        <code class="envar">POSTGRES_DEFAULT_STATEMENT_TIMEOUT</code>,
+                                        it will also abort queries that take too long. A value of 0
+                                        (the default) means the timeout is disabled.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-ldap"></a>LDAP authentication</h3></div></div></div><p>To use Guacamole with the LDAP authentication backend, you will need network
+                access to an LDAP directory. Unlike MySQL and PostgreSQL, the Guacamole Docker image
+                does not support Docker links for LDAP; the connection information
+                    <span class="emphasis"><em>must</em></span> be specified using environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_HOSTNAME</code></td><td>
+                                <p>The hostname or IP address of your LDAP server.</p>
+                            </td></tr><tr><td><code class="envar">LDAP_PORT</code></td><td>
+                                <p>The port your LDAP server listens on. By default, this will be
+                                    389 for unencrypted LDAP or LDAP using STARTTLS, and 636 for
+                                    LDAP over SSL (LDAPS).</p>
+                            </td></tr><tr><td><code class="envar">LDAP_ENCRYPTION_METHOD</code></td><td>
+                                <p>The encryption mechanism that Guacamole should use when
+                                    communicating with your LDAP server. Legal values are "none" for
+                                    unencrypted LDAP, "ssl" for LDAP over SSL/TLS (commonly known as
+                                    LDAPS), or "starttls" for STARTTLS. If omitted, encryption will
+                                    not be used.</p>
+                            </td></tr></tbody></table></div><p>Only the <code class="envar">LDAP_HOSTNAME</code> variable is required, but you may also need
+                to specify <code class="envar">LDAP_PORT</code> or <code class="envar">LDAP_ENCRYPTION_METHOD</code> if your
+                LDAP directory uses encryption or listens on a non-standard port:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e LDAP_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>   \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                    some-guacd:guacd</code> option above) is not required. Similar to LDAP, the
+                connection information for <span class="package">guacd</span> can be specified using
+                environment variables, as described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-required-vars"></a>Required environment variables</h4></div></div></div><p>Using LDAP for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will query your LDAP directory:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_USER_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole users. All Guacamole
+                                        users that will be authenticating against LDAP must be
+                                        descendents of this base DN.</p>
+                                </td></tr></tbody></table></div><p>As with the other authentication mechanisms, if any required environment
+                    variables are omitted (including those required for connecting to the LDAP
+                    directory over the network), you will receive an error message in the logs, and
+                    the image will stop. You will then need to recreate the container with the
+                    proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to configure the details
+                    of your LDAP directory hierarchy, or to enable more flexible searching for user
+                    accounts:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_GROUP_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all groups that may be referenced
+                                        within Guacamole configurations using the standard
+                                            <span class="property">seeAlso</span> attribute. All groups which
+                                        will be used to control access to Guacamole configurations
+                                        must be descendents of this base DN. <span class="emphasis"><em>If this
+                                            variable is omitted, the <span class="property">seeAlso</span>
+                                            attribute will have no effect on Guacamole
+                                            configurations.</em></span></p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_DN</code></td><td>
+                                    <p>The DN (Distinguished Name) of the user to bind as when
+                                        authenticating users that are attempting to log in. If
+                                        specified, Guacamole will query the LDAP directory to
+                                        determine the DN of each user that logs in. If omitted, each
+                                        user's DN will be derived directly using the base DN
+                                        specified with <code class="envar">LDAP_USER_BASE_DN</code>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_PASSWORD</code></td><td>
+                                    <p>The password to provide to the LDAP server when binding as
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> to authenticate other
+                                        users. This variable is only used if
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> is specified. If
+                                        omitted, but <code class="envar">LDAP_SEARCH_BIND_DN</code> is
+                                        specified, Guacamole will attempt to bind with the LDAP
+                                        server without a password.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_USERNAME_ATTRIBUTE</code></td><td>
+                                    <p>The attribute or attributes which contain the username
+                                        within all Guacamole user objects in the LDAP directory.
+                                        Usually, and by default, this will simply be
+                                            "<span class="property">uid</span>". If your LDAP directory
+                                        contains users whose usernames are dictated by different
+                                        attributes, multiple attributes can be specified here,
+                                        separated by commas, but beware: <span class="emphasis"><em>doing so requires
+                                            that a search DN be provided with
+                                                <code class="envar">LDAP_SEARCH_BIND_DN</code></em></span>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_CONFIG_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole configurations. If
+                                        omitted, the configurations of Guacamole connections will
+                                        simply not be queried from the LDAP directory, and you will
+                                        need to store them elsewhere, such as within a MySQL or
+                                        PostgreSQL database.</p>
+                                </td></tr></tbody></table></div><p>As documented in <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>, Guacamole does support combining LDAP with a MySQL or
+                    PostgreSQL database, and this can be configured with the Guacamole Docker image,
+                    as well. Each of these authentication mechanisms is independently configurable
+                    using their respective environment variables, and by providing the required
+                    environment variables for multiple systems, Guacamole will automatically be
+                    configured to use each when the Docker image starts.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-header-auth"></a>Header Authentication</h3></div></div></div><p>The header authentication extension can be used to authenticate Guacamole
+                through a trusted third-party server, where the authenticated user's username
+                is passed back to Guacamole via a specific HTTP header. The following
+                are valid Docker variables for enabling and configuring header
+                authentication:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">HEADER_ENABLED</code></td><td>
+                                <p>Enables authentication via the header extension,
+                                    which causes the extension to be loaded when
+                                    Guacamole starts. By default this is false and the
+                                    header extension will not be loaded.</p>
+                            </td></tr><tr><td><code class="envar">HTTP_AUTH_HEADER</code></td><td>
+                                <p>Optional environment variable that, if set,
+                                    configures the name of the HTTP header that will
+                                    be used used to authenticate the user to
+                                    Guacamole. If this is not specified the default
+                                    value of REMOTE_USER will be used.</p>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacamole-home"></a>Custom extensions and <code class="envar">GUACAMOLE_HOME</code></h3></div></div></div><p>If you have your own or third-party extensions for Guacamole which are not
+                supported by the Guacamole Docker image, but are compatible with the version of
+                Guacamole within the image, you can still use them by providing a custom base
+                configuration using the <code class="envar">GUACAMOLE_HOME</code> environment variable:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACAMOLE_HOME</code></td><td>
+                                <p>The absolute path to the directory within the Docker container
+                                    to use <span class="emphasis"><em>as a template</em></span> for the image's
+                                    automatically-generated <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a>. Any configuration
+                                    generated by the Guacamole Docker image based on other
+                                    environment variables will be applied to an independent copy of
+                                    the contents of this directory.</p>
+                            </td></tr></tbody></table></div><p>You will <span class="emphasis"><em>still</em></span> need to follow the steps required to create
+                the contents of <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a> specific to your
+                extension (placing the extension itself within
+                        <code class="filename"><em class="replaceable"><code>GUACAMOLE_HOME</code></em>/extensions/</code>,
+                adding any properties to <code class="filename">guacamole.properties</code>, etc.), but the
+                rest of Guacamole's configuration will be handled automatically, overlaid on top of
+                a copy of the <code class="envar">GUACAMOLE_HOME</code> you provide.</p><p>Because the Docker image's <code class="envar">GUACAMOLE_HOME</code> environment variable must
+                point to a directory <span class="emphasis"><em>within the container</em></span>, you will need to
+                expose your custom <code class="envar">GUACAMOLE_HOME</code> to the container using the
+                    <code class="option">-v</code> option of <span class="command"><strong>docker run</strong></span>. The container
+                directory chosen can then be referenced in the <code class="envar">GUACAMOLE_HOME</code>
+                environment variable, and the image will handle the rest automatically:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>    \
+    ...
+    <span class="emphasis"><em>-v <em class="replaceable"><code>/local/path</code></em>:<em class="replaceable"><code>/some-directory</code></em>   \
+    -e GUACAMOLE_HOME=<em class="replaceable"><code>/some-directory</code></em> \</em></span>
+    -d -p 8080:8080 guacamole/guacamole</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="verifying-guacamole-docker"></a>Verifying the Guacamole install</h3></div></div></div><p>Once the Guacamole image is running, Guacamole should be accessible at
+                        <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                    <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+                hosting Docker, and you <span class="emphasis"><em>should</em></span> a login screen. If using MySQL
+                or PostgreSQL, the database initialization scripts will have created a default
+                administrative user called "<code class="systemitem">guacadmin</code>" with the password
+                    "<code class="systemitem">guacadmin</code>". <span class="emphasis"><em>You should log in and change
+                    your password immediately.</em></span> If using LDAP, you should be able to log
+                in as any valid user within your LDAP directory.</p><p>If you cannot access Guacamole, or you do not see a login screen, check Docker's
+                logs using the <span class="command"><strong>docker logs</strong></span> command to determine if something is
+                wrong. Configuration parameters may have been given incorrectly, or the database may
+                be improperly initialized:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> logs <em class="replaceable"><code>some-guacamole</code></em></pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Installing Guacamole natively </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Proxying Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-ext.html b/doc/1.3.0/gug/guacamole-ext.html
new file mode 100644
index 0000000..e68c211
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-ext.html
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. guacamole-ext</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common-js.html" title="Chapter 22. guacamole-common-js" /><link rel="next" href="custom-protocols.html" title="Chapter 24. Adding new protocols" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. guacamole-ext</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-ext"></a>Chapter 23. guacamole-ext</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-manifest">Extension manifest</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-patch-html">Updating existing HTML</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-config">Custom properties</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-advanced-config">Advanced configuration</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-auth"><code class="classname">SimpleAuthenticationProvider</code></a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#idm46227492465024">System permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#idm46227492451776">Object permissions</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></div><a id="idm46227492909952" class="indexterm"></a><a id="idm46227492908608" class="indexterm"></a><p>While not strictly part of the Java API provided by the Guacamole project, guacamole-ext
+        is an API exposed by the Guacamole web application within a separate project such that
+        extensions, specifically authentication providers, can be written to tweak Guacamole to fit
+        well in existing deployments.</p><p>Extensions to Guacamole can:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Provide alternative authentication methods and sources of connection/user
+                data.</p></li><li class="listitem"><p>Provide event listeners that will be notified as Guacamole performs tasks such
+                as authentication and tunnel connection.</p></li><li class="listitem"><p>Theme or brand Guacamole through additional CSS files and static resources.</p></li><li class="listitem"><p>Extend Guacamole's JavaScript code by providing JavaScript that will be loaded
+                automatically.</p></li><li class="listitem"><p>Add additional display languages, or alter the translation strings of existing
+                languages.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-file-format"></a>Guacamole extension format</h2></div></div></div><p>Guacamole extensions are standard Java <code class="filename">.jar</code> files which contain
+            all classes and resources required by the extension, as well as the Guacamole extension
+            manifest. There is no set structure to an extension except that the manifest must be in
+            the root of the archive. Java classes and packages, if any, will be read from the
+                <code class="filename">.jar</code> relative to the root, as well.</p><p>Beyond this, the semantics and locations associated with all other resources within
+            the extension are determined by the extension manifest alone.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-manifest"></a>Extension manifest</h3></div></div></div><p>The Guacamole extension manifest is a single JSON file,
+                    <code class="filename">guac-manifest.json</code>, which describes the location of each
+                resource, the type of each resource, and the version of Guacamole that the extension
+                was built for. The manifest can contain the following properties:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">guacamoleVersion</span></td><td>
+                                <p>The version string of the Guacamole release that this
+                                    extension is written for. <span class="emphasis"><em>This property is required
+                                        for all extensions.</em></span> The special version string
+                                        <code class="code">"*"</code> can be used if the extension does not
+                                    depend on a particular version of Guacamole, but be careful -
+                                    this will bypass version compatibility checks, and should never
+                                    be used if the extension does more than basic theming or
+                                    branding.</p>
+                            </td></tr><tr><td><span class="property">name</span></td><td>
+                                <p>A human-readable name for the extension. <span class="emphasis"><em>This
+                                        property is required for all extensions.</em></span> When
+                                    your extension is successfully loaded, a message acknowledging
+                                    the successful loading of your extension by name will be
+                                    logged.</p>
+                            </td></tr><tr><td><span class="property">namespace</span></td><td>
+                                <p>A unique string which identifies your extension.
+                                        <span class="emphasis"><em>This property is required for all
+                                        extensions.</em></span> This string should be unique enough
+                                    that it is unlikely to collide with the namespace of any other
+                                    extension.</p>
+                                <p>If your extension contains static resources, those resources
+                                    will be served at a path derived from the namespace provided
+                                    here.</p>
+                            </td></tr><tr><td><span class="property">authProviders</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">AuthenticationProvider</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">listeners</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">Listener</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">js</span></td><td>
+                                <p>An array of all JavaScript files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>JavaScript files declared here will be automatically loaded
+                                    when the web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">css</span></td><td>
+                                <p>An array of all CSS files within the extension. All paths
+                                    within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>CSS files declared here will be automatically applied when the
+                                    web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">html</span></td><td>
+                                <p>An array of all HTML files within the extension that should be
+                                    used to update or replace existing HTML within the Guacamole
+                                    interface. All paths within this array must be relative paths,
+                                    and will be interpreted relative to the root of the
+                                    archive.</p>
+                                <p>HTML files declared here will be automatically applied to
+                                    other HTML within the Guacamole interface when the web
+                                    application loads within the user's browser. The manner in which
+                                    the files are applied is dictated by <code class="sgmltag-element">&lt;meta ...&gt;</code>
+                                    within those same files.</p>
+                            </td></tr><tr><td><span class="property">translations</span></td><td>
+                                <p>An array of all translation files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Translation files declared here will be automatically added to
+                                    the available languages. If a translation file provides a
+                                    language that already exists within Guacamole, its strings will
+                                    override the strings of the existing translation.</p>
+                            </td></tr><tr><td><span class="property">resources</span></td><td>
+                                <p>An object where each property name is the name of a web
+                                    resource file, and each value is the mimetype for that resource.
+                                    All paths within this object must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Web resources declared here will be made available to the
+                                    application at
+                                            <code class="filename">app/ext/<em class="replaceable"><code>NAMESPACE</code></em>/<em class="replaceable"><code>PATH</code></em></code>,
+                                    where <em class="replaceable"><code>NAMESPACE</code></em> is the value of the
+                                        <span class="property">namespace</span> property, and
+                                        <em class="replaceable"><code>PATH</code></em> is the declared web resource
+                                    filename.</p>
+                            </td></tr></tbody></table></div><p>The only absolutely required properties are <span class="property">guacamoleVersion</span>,
+                    <span class="property">name</span>, and <span class="property">namespace</span>, as they are used
+                to identify the extension and for compatibility checks. The most minimal
+                    <code class="filename">guac-manifest.json</code> will look something like this:</p><div class="informalexample"><pre class="programlisting">{
+    "guacamoleVersion" : "1.3.0",
+    "name" : "My Extension",
+    "namespace" : "my-extension"
+}</pre></div><p>This will allow the extension to load, but does absolutely nothing otherwise.
+                Lacking the semantic information provided by the other properties, no other files
+                within the extension will be used. A typical <code class="filename">guac-manifest.json</code>
+                for an extension providing theming or branding would be more involved:</p><div class="informalexample"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.3.0",
+
+    "name"      : "My Extension",
+    "namespace" : "my-extension",
+
+    "css" : [ "theme.css" ],
+
+    "html" : [ "loginDisclaimer.html" ],
+
+    "resources" : {
+        "images/logo.png"   : "image/png",
+        "images/cancel.png" : "image/png",
+        "images/delete.png" : "image/png"
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-patch-html"></a>Updating existing HTML</h3></div></div></div><p>The existing HTML structure of Guacamole's interface can be modified by extensions
+                through special "patch" HTML files declared by the <span class="property">html</span>
+                property in <code class="filename">guac-manifest.json</code>. These files are HTML fragments
+                and are identical to any other HTML file except that they contain Guacamole-specific
+                    <code class="sgmltag-element">meta</code> tags that instruct Guacamole to modify its own HTML in a
+                particular way. Each <code class="sgmltag-element">meta</code> tag takes the following form:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="<em class="replaceable"><code>NAME</code></em>" content="<em class="replaceable"><code>SELECTOR</code></em>"&gt;</pre></div><p>where <em class="replaceable"><code>SELECTOR</code></em> is a CSS selector that matches the
+                elements within the Guacamole interface that serve as a basis for the modification,
+                and <em class="replaceable"><code>NAME</code></em> is any one of the following defined
+                modifications:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">before</span></td><td>
+                                <p>Inserts the specified HTML immediately before any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">after</span></td><td>
+                                <p>Inserts the specified HTML immediately after any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">replace</span></td><td>
+                                <p>Replaces any element matching the CSS selector with the
+                                    specified HTML.</p>
+                            </td></tr><tr><td><span class="property">before-children</span></td><td>
+                                <p>Inserts the specified HTML immediately before the first child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">after-children</span></td><td>
+                                <p>Inserts the specified HTML immediately after the last child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">replace-children</span></td><td>
+                                <p>Replaces the entire contents of any element matching the CSS
+                                    selector with the specified HTML.</p>
+                            </td></tr></tbody></table></div><p>For example, to add a welcome message and link to some corporate privacy policy (a
+                fairly common need), you would add an HTML file like the following:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="after" content=".login-ui .login-dialog"&gt;
+
+&lt;div class="welcome"&gt;
+    &lt;h2&gt;Welcome to our Guacamole server!&lt;/h2&gt;
+    &lt;p&gt;
+        Please be sure to read our &lt;a href="/path/to/some/privacy.html"&gt;privacy
+        policy&lt;/a&gt; before continuing.
+    &lt;/p&gt;
+&lt;/div&gt;</pre></div><p>After the extension is installed and Guacamole is restarted, the "welcome" div and
+                its contents will automatically be inserted directly below the login dialog (the
+                only element that would match <code class="code">.login-ui .login-dialog</code>) as if they were
+                part of Guacamole's HTML in the first place.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-environment"></a>Accessing the server configuration</h2></div></div></div><p>The configuration of the Guacamole server is exposed through the
+                <code class="classname">Environment</code> interface, specifically the
+                <code class="classname">LocalEnvironment</code> implementation of this interface. Through
+                <code class="classname">Environment</code>, you can access all properties declared within
+                <code class="filename">guacamole.properties</code>, determine the proper hostname/port of
+                <span class="package">guacd</span>, and access the contents of
+                <code class="varname">GUACAMOLE_HOME</code>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-config"></a>Custom properties</h3></div></div></div><p>If your extension requires generic, unstructured configuration parameters,
+                    <code class="filename">guacamole.properties</code> is a reasonable and simple location
+                for them. The <code class="classname">Environment</code> interface provides direct access to
+                    <code class="filename">guacamole.properties</code> and simple mechanisms for reading and
+                parsing the properties therein. The value of a property can be retrieved calling
+                    <code class="methodname">getProperty()</code>, which will return
+                    <code class="constant">null</code> or a default value for undefined properties, or
+                    <code class="methodname">getRequiredProperty()</code>, which will throw an exception
+                for undefined properties.</p><p>For convenience, guacamole-ext contains several pre-defined property base classes
+                for common types:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Class Name</th><th>Value Type</th><th>Interpretation</th></tr></thead><tbody><tr><td><code class="classname">BooleanGuacamoleProperty</code></td><td><code class="classname">Boolean</code></td><td>The values "true" and "false" are parsed as their corresponding
+                                    <code class="classname">Boolean</code> values. Any other value results
+                                in a parse error.</td></tr><tr><td><code class="classname">IntegerGuacamoleProperty</code></td><td><code class="classname">Integer</code></td><td>Numeric strings are parsed as <code class="classname">Integer</code>
+                                values. Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">LongGuacamoleProperty</code></td><td><code class="classname">Long</code></td><td>Numeric strings are parsed as <code class="classname">Long</code> values.
+                                Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">StringGuacamoleProperty</code></td><td><code class="classname">String</code></td><td>The property value is returned as an untouched
+                                    <code class="classname">String</code>. No parsing is performed, and
+                                parse errors cannot occur.</td></tr><tr><td><code class="classname">FileGuacamoleProperty</code></td><td><code class="classname">File</code></td><td>The property is interpreted as a filename, and a new
+                                    <code class="classname">File</code> pointing to that filename is
+                                returned. If the filename is invalid, a parse error will be thrown.
+                                Note that the file need not exist or be accessible for the filename
+                                to be valid.</td></tr></tbody></table></div><p>To use these types, you must extend the base class, implementing the
+                    <code class="methodname">getName()</code> function to identify your property.
+                Typically, you would declare these properties as static members of some class
+                containing all properties relevant to your extension:</p><div class="informalexample"><pre class="programlisting">public class MyProperties {
+
+    public static <em class="replaceable"><code>MY_PROPERTY</code></em> = new IntegerGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "<em class="replaceable"><code>my-property</code></em>"; }
+
+    };
+
+}</pre></div><p>Your property can then be retrieved with <code class="methodname">getProperty()</code> or
+                    <code class="methodname">getRequiredProperty()</code>:</p><div class="informalexample"><pre class="programlisting">Integer value = environment.getProperty(<em class="replaceable"><code>MyProperties.MY_PROPERTY</code></em>);</pre></div><p>If you need more sophisticated parsing, you can also implement your own property
+                types by implementing the <code class="classname">GuacamoleProperty</code> interface. The
+                only functions to implement are <code class="methodname">getName()</code>, which returns
+                the name of the property, and <code class="methodname">parseValue()</code>, which parses a
+                given string and returns its value.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-advanced-config"></a>Advanced configuration</h3></div></div></div><p>If you need more structured data than provided by simple properties, you can place
+                completely arbitrary files in a hierarchy of your choosing anywhere within
+                    <code class="varname">GUACAMOLE_HOME</code> as long as you avoid placing your files in
+                directories reserved for other purposes as described above.</p><p>The Environment interface exposes the location of
+                    <code class="varname">GUACAMOLE_HOME</code> through the
+                    <code class="methodname">getGuacamoleHome()</code> function. This function returns a
+                standard Java <code class="classname">File</code> which can then be used to locate other
+                files or directories within <code class="varname">GUACAMOLE_HOME</code>:</p><div class="informalexample"><pre class="programlisting">File myConfigFile = new File(environment.getGuacamoleHome(), "my-config.xml");</pre><p>There is no guarantee that <code class="varname">GUACAMOLE_HOME</code> or your file will
+                    exist, and you should verify this before proceeding further in your extension's
+                    configuration process, but once this is done you can simply parse your file as
+                    you see fit.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-auth-providers"></a>Authentication providers</h2></div></div></div><p>Guacamole's authentication system is driven by authentication providers, which are
+            classes which implement the <code class="classname">AuthenticationProvider</code> interface
+            defined by guacamole-ext. When any page within Guacamole is visited, the following
+            process occurs:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>All currently installed extensions are polled, in lexicographic order of their
+                    filenames, by invoking the <code class="methodname">getAuthenticatedUser()</code>
+                    function with a <code class="classname">Credentials</code> object constructed with the
+                    contents of the HTTP request.</p><p>The credentials given are abstract. While the Credentials object provides
+                    convenience access to a traditional username and password,
+                        <span class="emphasis"><em>implementations are not required to use usernames and
+                        passwords</em></span>. The entire contents of the HTTP request is at your
+                    disposal, including parameters, cookies, and SSL information.</p></li><li class="listitem"><p>If an authentication attempt fails, the extension throws either a
+                        <code class="classname">GuacamoleInsufficientCredentialsException</code> (if more
+                    credentials are needed before validity can be determined) or
+                        <code class="classname">GuacamoleInvalidCredentialsException</code> (if the
+                    credentials are technically sufficient, but are invalid as provided). If all
+                    extensions fail to authenticate the user, the contents of the exception thrown
+                    by the first extension to fail are used to produce the user login prompt.</p><p><span class="emphasis"><em>Note that this means there is no "login screen" in Guacamole per se;
+                        the prompt for credentials for unauthenticated users is determined purely
+                        based on the needs of the extension as declared within the authentication
+                        failure itself.</em></span></p><p>If an authentication attempt succeeds, the extension returns an instance of
+                        <code class="classname">AuthenticatedUser</code> describing the identity of the user
+                    that just authenticated, and no further extensions are polled.</p></li><li class="listitem"><p>If authentication has succeeded, and thus an
+                        <code class="classname">AuthenticatedUser</code> is available, that
+                        <code class="classname">AuthenticatedUser</code> is passed to the
+                        <code class="methodname">getUserContext()</code> function of all extensions'
+                    authentication providers. Each extension now has the opportunity to provide
+                    access to data for a user, even if that extension did not originally
+                    authenticate the user. If no <code class="classname">UserContext</code> is returned for
+                    the given <code class="classname">AuthenticatedUser</code>, then that extension has
+                    simply refused to provide data for that user.</p><p>The Guacamole interface will transparently unify the data from each extension,
+                    providing the user with a view of all available connections. If the user has
+                    permission to modify or administer any objects associated with an extension,
+                    access to the administrative interface will be exposed as well, again with a
+                    unified view of all applicable objects.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Because authentication is decoupled from data storage/access, <span class="emphasis"><em>you do not
+                    need to implement full-blown data storage if you only wish to provide an
+                    additional authentication mechanism</em></span>. You can instead implement only
+                the authentication portion of an <code class="classname">AuthenticationProvider</code>, and
+                otherwise rely on the storage and features provided by other extensions, such as the
+                    <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a>.</p></div><p>The Guacamole web application includes a basic authentication provider implementation
+            which parses an XML file to determine which users exist, their corresponding passwords,
+            and what configurations those users have access to. This is the part of Guacamole that
+            reads the <code class="filename">user-mapping.xml</code> file. If you use a custom authentication
+            provider for your authentication, this file will probably not be required.</p><p>The community has implemented authentication providers which access databases, use
+            LDAP, or even perform no authentication at all, redirecting all users to a single
+            configuration specified in <code class="filename">guacamole.properties</code>.</p><p>A minimal authentication provider is implemented in the tutorials later, and the
+            upstream authentication provider implemented within Guacamole, as well as the
+            authentication providers implemented by the community, are good examples for how
+            authentication can be extended without having to implement a whole new web
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-auth"></a><code class="classname">SimpleAuthenticationProvider</code></h3></div></div></div><p>The <code class="classname">SimpleAuthenticationProvider</code> class provides a much
+                simpler means of implementing authentication when you do not require the ability to
+                add and remove users and connections. It is an abstract class and requires only one
+                function implementation:
+                <code class="methodname">getAuthorizedConfigurations()</code>.</p><p>This function is required to return a <code class="classname">Map</code> of unique IDs to
+                configurations, where these configurations are all configurations accessible with
+                the provided credentials. As before, the credentials given are abstract. You are not
+                required to use usernames and passwords.</p><p>The configurations referred to by the function name are instances of
+                    <code class="classname">GuacamoleConfiguration</code> (part of guacamole-common), which
+                is just a wrapper around a protocol name and set of parameter name/value pairs. The
+                name of the protocol to use and a set of parameters is the minimum information
+                required for other parts of the Guacamole API to complete the handshake required by
+                the Guacamole protocol.</p><p>When a class that extends <code class="classname">SimpleAuthenticationProvider</code> is
+                asked for more advanced operations by the web application,
+                    <code class="classname">SimpleAuthenticationProvider</code> simply returns that there is
+                no permission to do so. This effectively disables all administrative functionality
+                within the web interface.</p><p>If you choose to go the simple route, most of the rest of this chapter is
+                irrelevant. Permissions, security model, and various classes will be discussed that
+                are all handled for you automatically by
+                    <code class="classname">SimpleAuthenticationProvider</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-user-context"></a>The <code class="classname">UserContext</code></h2></div></div></div><p>The <code class="classname">UserContext</code> is the root of all data-related operations. It
+            is used to list, create, modify, or delete users and connections, as well as to query
+            available permissions. If an extension is going to provide access to data of any sort,
+            it must do so through the <code class="classname">UserContext</code>.</p><p>The Guacamole web application uses permissions queries against the
+                <code class="classname">UserContext</code> to determine what operations to present, but
+                <span class="emphasis"><em>beware that it is up to the <code class="classname">UserContext</code> to actually
+                enforce these restrictions</em></span>. The Guacamole web application will not
+            enforce restrictions on behalf of the <code class="classname">UserContext</code>.</p><p>The <code class="classname">UserContext</code> is the sole means of entry and the sole means
+            of modification available to a logged-in user. If the <code class="classname">UserContext</code>
+            refuses to perform an operation (by throwing an exception), the user cannot perform the
+            operation at all.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-object-directories"></a><code class="classname">Directory</code> classes</h2></div></div></div><p>Access to objects beneath the <code class="classname">UserContext</code> is given through
+                <code class="classname">Directory</code> classes. These <code class="classname">Directory</code>
+            classes are similar to Java collections, but they also embody update and batching
+            semantics. Objects can be retrieved from a <code class="classname">Directory</code> using its
+                <code class="methodname">get()</code> function and added or removed with
+                <code class="methodname">add()</code> and <code class="methodname">remove()</code> respectively,
+            but objects already in the set can also be updated by passing an updated object to its
+                <code class="methodname">update()</code> function.</p><p>An implementation of a <code class="classname">Directory</code> can rely on these functions to
+            define the semantics surrounding all operations. The <code class="methodname">add()</code>
+            function is called only when creating new objects, the <code class="methodname">update()</code>
+            function is called only when updating an object previously retrieved with
+                <code class="methodname">get()</code>, and <code class="methodname">remove()</code> is called only
+            when removing an existing object by its identifier.</p><p>When implementing an <code class="classname">AuthenticationProvider</code>, you must ensure
+            that the <code class="classname">UserContext</code> will only return
+                <code class="classname">Directory</code> classes that automatically enforce the permissions
+            associated with all objects and the associated user.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-rest-resources"></a>REST resources</h2></div></div></div><p>Arbitrary REST resources may be exposed by extensions at the
+                <code class="classname">AuthenticationProvider</code> level, if the resource does not
+            require an associated authenticated user, or at the <code class="classname">UserContext</code>
+            level, if the resource should be available to authenticated users only. In both cases,
+            the REST resource is provided through implementing the
+                <code class="function">getResource()</code> function, returning an object which is annotated
+            with JAX-RS annotations (JSR 311).</p><p>The resource returned by <code class="function">getResource()</code> functions as the root
+            resource, providing access to other resources beneath itself. The root resource for the
+                <code class="classname">AuthenticationProvider</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            and the root resource for the <code class="classname">UserContext</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/session/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            where <em class="replaceable"><code>PATH</code></em> is the path to which Guacamole has been deployed
+            (typically <code class="uri">/guacamole/</code>) and <em class="replaceable"><code>IDENTIFIER</code></em> is the
+            unique identifier for the <code class="classname">AuthenticationProvider</code>, as returned by
+                <code class="function">getIdentifier()</code>.</p><p>The behavior of extension REST resources is generally left entirely to the
+            implementation, with the exception that the "token" request parameter is reserved for
+            use by Guacamole. This parameter contains the user's authentication token when the user
+            is logged in, and must be present on all requests which require authentication. Though
+            not relevant to REST resources exposed at the
+                <code class="classname">AuthenticationProvider</code> level, resources exposed at the
+                <code class="classname">UserContext</code> level inherently require the "token" parameter to
+            be present, as it is the sole means of locating the user's session.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-permissions"></a>Permissions</h2></div></div></div><p>The permissions system within guacamole-ext is an advisory system. It is the means by
+            which an authentication module describes to the web application what a user is allowed
+            to do. The body of permissions granted to a user describes which objects that user can
+            see and what they can do to those objects, and thus suggests how the Guacamole interface
+            should appear to that user.</p><p><span class="emphasis"><em>Permissions are not the means by which access is restricted</em></span>; they
+            are purely a means of describing access level. An implementation may internally use the
+            permission objects to define restrictions, but this is not required. It is up to the
+            implementation to enforce its own restrictions by throwing exceptions when an operation
+            is not allowed, and to correctly communicate the abilities of individual users through
+            these permissions.</p><p>The permissions available to a user are exposed through the
+                <code class="classname">SystemPermissionSet</code> and
+                <code class="classname">ObjectPermissionSet</code> classes which are accessible through the
+                <code class="classname">UserContext</code>. These classes also serve as the means for
+            manipulating the permissions granted to a user.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492465024"></a>System permissions</h3></div></div></div><p>System permissions describe access to operations that manipulate the system as a
+                whole, rather than specific objects. This includes the creation of new objects, as
+                object creation directly affects the system, and per-object controls cannot exist
+                before the object is actually created.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user is a super-user - the Guacamole equivalent of root. They are
+                            allowed to manipulate of system-level permissions and all other objects.
+                            This permission implies all others.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION</code></span></dt><dd><p>The user is allowed to create new connections. If a user has this
+                            permission, the management interface will display components related to
+                            connection creation.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION_GROUP</code></span></dt><dd><p>The user is allowed to create new connection groups. If a user has
+                            this permission, the management interface will display components
+                            related to connection group creation.</p></dd><dt><span class="term"><code class="constant">CREATE_SHARING_PROFILE</code></span></dt><dd><p>The user is allowed to create new sharing profiles. If a user has this
+                            permission, the management interface will display components related to
+                            sharing profile creation.</p></dd><dt><span class="term"><code class="constant">CREATE_USER</code></span></dt><dd><p>The user is allowed to create other users. If a user has this
+                            permission, the management interface will display components related to
+                            user creation.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492451776"></a>Object permissions</h3></div></div></div><p>Object permissions describe access to operations that affect a particular object.
+                Guacamole currently defines four types of objects which can be associated with
+                permissions: users, connections, connection groups, and sharing profiles. Each
+                object permission associates a single user with an action that may be performed on a
+                single object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user may grant or revoke permissions involving this object.
+                            "Involving", in this case, refers to either side of the permission
+                            association, and includes both the user to whom the permission is
+                            granted and the object the permission affects.</p></dd><dt><span class="term"><code class="constant">DELETE</code></span></dt><dd><p>The user may delete this object. This is distinct from the
+                                <code class="constant">ADMINISTER</code> permission which deals only with
+                            permissions. A user with this permission will see the "Delete" button
+                            when applicable.</p></dd><dt><span class="term"><code class="constant">READ</code></span></dt><dd><p>The user may see that this object exists and read the properties of
+                            that object.</p><p>Note that the implementation is <span class="emphasis"><em>not required to divulge the
+                                true underlying properties of any object</em></span>. The parameters
+                            of a connection or sharing profile, the type or contents of a connection
+                            group, the password of a user, etc. all need not be exposed.</p><p>This is particularly important from the perspective of security when
+                            it comes to connections, as the parameters of a connection are only
+                            truly needed when a connection is being modified, and likely should not
+                            be exposed otherwise. The actual connection operation is always
+                            performed internally by the authentication provider, and thus does not
+                            require client-side knowledge of anything beyond the connection's
+                            existence.</p></dd><dt><span class="term"><code class="constant">UPDATE</code></span></dt><dd><p>The user may change the properties of this object.</p><p>In the case of users, this means the user's password can be altered.
+                                <span class="emphasis"><em>Permissions are not considered properties of a
+                                user</em></span>, nor objects in their own right, but rather
+                            associations between a user and an action which may involve another
+                            object.</p><p>The properties of a connection include its name, protocol, parent
+                            connection group, and parameters. The properties of a connection group
+                            include its name, type, parent connection group, and children. The
+                            properties of a sharing profile include its name, primary connection,
+                            and parameters.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-connections"></a>Connections</h2></div></div></div><p>Guacamole connections are organized in a hierarchy made up of connection groups, which
+            each act as folders organizing the connections themselves. The hierarchy is accessed
+            through the root-level connection group, exposed by
+                <code class="methodname">getRootConnectionGroup()</code> by the
+                <code class="classname">UserContext</code>. The connections and connection groups exposed
+            beneath the root connection group must also be accessible directly through the
+            connection and connection group directories exposed by
+                <code class="methodname">getConnectionDirectory()</code> and
+                <code class="methodname">getConnectionGroupDirectory()</code> of the
+                <code class="classname">UserContext</code>.</p><p>When a user attempts to use a connection the <code class="methodname">connect()</code> of the
+            associated <code class="classname">Connection</code> object will be invoked. It is then up to
+            the implementation of this function to establish the TCP connection to guacd, perform
+            the connection handshake (most likely via an <code class="classname">InetGuacamoleSocket</code>
+            wrapped within a <code class="classname">ConfiguredGuacamoleSocket</code>), and then return a
+                <code class="classname">GuacamoleTunnel</code> which controls access to the established
+            socket.</p><p>Extensions may maintain historical record of connection use via
+                <code class="classname">ConnectionRecord</code> objects, which are exposed both at the
+                <code class="classname">Connection</code> level and across all connections via the
+                <code class="classname">UserContext</code>. Such record maintenance is optional, and it is
+            expected that most implementations will simply return empty lists.</p><div class="important"><h3 class="title">Important</h3><p>If connection state will not be tracked by the extension, and the parameters
+                associated with the connection will be known at the time the connection object is
+                created, the <code class="classname">SimpleConnection</code> implementation of
+                    <code class="classname">Connection</code> can be used to make life easier.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-active-connections"></a>Managing/sharing active connections</h2></div></div></div><p>After a connection has been established, its underlying
+                <code class="classname">GuacamoleTunnel</code> can be exposed by a
+                <code class="classname">UserContext</code> through the <code class="classname">Directory</code>
+            returned by <code class="methodname">getActiveConnectionDirectory()</code>. The
+                <code class="classname">ActiveConnection</code> objects accessible through this
+                <code class="classname">Directory</code> are the means by which an administrator may monitor
+            or forcibly terminate another user's connection, ultimately resulting in Guacamole
+            invoking the <code class="methodname">close()</code> function of the underlying
+                <code class="classname">GuacamoleTunnel</code>, and also serve as the basis for screen
+            sharing.</p><p>Screen sharing is implemented through the use of <code class="classname">SharingProfile</code>
+            objects, exposed through yet another <code class="classname">Directory</code> beneath the
+                <code class="classname">UserContext</code>. Each sharing profile is associated with a single
+            connection that it can be used to share, referred to as the "primary connection". If a
+            user has read access to a sharing profile associated with their current connection, that
+            sharing profile will be displayed as an option within <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">the share
+                menu of the Guacamole menu</a>.</p><p>The overall sharing process is as follows:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A user, having access to a sharing profile associated with their current
+                    active connection, clicks its option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                        menu</a>.</p></li><li class="listitem"><p>Guacamole locates the <code class="classname">ActiveConnection</code> and invokes its
+                        <code class="methodname">getSharingCredentials()</code> function with the
+                    identifier of the sharing profile. The contents of the returned
+                        <code class="classname">UserCredentials</code> object is used by Guacamole to
+                    generate a sharing link which can be given to other users.</p></li><li class="listitem"><p>When another user visits the sharing link, the credentials embedded in the
+                    link are passed to the authentication providers associated with each installed
+                    extension. <span class="emphasis"><em>It is up to the extension that originally provided those
+                        credentials to authenticate the user and provide them with access to the
+                        shared connection.</em></span></p></li><li class="listitem"><p>When the user attempts to connect to the shared connection, the extension
+                    establishes the connection using the ID of the connection being joined.
+                        <span class="emphasis"><em>This is not the connection identifier as dictated by
+                        guacamole-ext, but rather <a class="link" href="guacamole-protocol.html#guacamole-protocol-joining" title="Joining an existing connection">the unique ID assigned by guacd as
+                            required by the Guacamole protocol</a>.</em></span> This ID can be
+                    retrieved from a <code class="methodname">ConfiguredGuacamoleSocket</code> via
+                        <code class="methodname">getConnectionID()</code>, and can be passed through a
+                        <code class="methodname">GuacamoleConfiguration</code> through
+                        <code class="methodname">setConnectionID()</code> (instead of specifying a
+                    protocol, as would be done for a brand new connection).</p></li></ol></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. guacamole-common-js </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Adding new protocols</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/guacamole-protocol.html b/doc/1.3.0/gug/guacamole-protocol.html
new file mode 100644
index 0000000..538abd7
--- /dev/null
+++ b/doc/1.3.0/gug/guacamole-protocol.html
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. The Guacamole protocol</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="next" href="libguac.html" title="Chapter 20. libguac" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. The Guacamole protocol</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-protocol"></a>Chapter 19. The Guacamole protocol</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-joining">Joining an existing connection</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-compositing">Compositing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-images">Image data</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-copying-images">Copying image data between layers</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-graphical-primitives">Graphical primitives</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-layers">Buffers and layers</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></div><a id="idm46227495524768" class="indexterm"></a><p>This chapter is an overview of the Guacamole protocol, describing its design and general
+        use. While a few instructions and their syntax will be described here, this is not an
+        exhaustive list of all available instructions. The intent is only to list the general types
+        and usage. If you are looking for the syntax or purpose of a specific instruction, consult
+        the protocol reference included with the appendices.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-design"></a>Design</h2></div></div></div><p>The Guacamole protocol consists of instructions. Each instruction is a comma-delimited
+            list followed by a terminating semicolon, where the first element of the list is the
+            instruction opcode, and all following elements are the arguments for that
+            instruction:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>OPCODE</code></em>,<em class="replaceable"><code>ARG1</code></em>,<em class="replaceable"><code>ARG2</code></em>,<em class="replaceable"><code>ARG3</code></em>,<em class="replaceable"><code>...</code></em>;</pre></div><p>Each element of the list has a positive decimal integer length prefix separated by the
+            value of the element by a period. This length denotes the number of Unicode characters
+            in the value of the element, which is encoded in UTF-8:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>LENGTH</code></em>.<em class="replaceable"><code>VALUE</code></em></pre></div><p>Any number of complete instructions make up a message which is sent from client to
+            server or from server to client. Client to server instructions are generally control
+            instructions (for connecting or disconnecting) and events (mouse and keyboard). Server
+            to client instructions are generally drawing instructions (caching, clipping, drawing
+            images), using the client as a remote display.</p><p>For example, a complete and valid instruction for setting the display size to 1024x768
+            would be:</p><div class="informalexample"><pre class="programlisting">4.size,1.0,4.1024,3.768;</pre></div><p>Here, the instruction would be decoded into four elements: "size", the opcode of the
+            size instruction, "0", the index of the default layer, "1024", the desired width in
+            pixels, and "768", the desired height in pixels.</p><p>The structure of the Guacamole protocol is important as it allows the protocol to be
+            streamed while also being easily parsable by JavaScript. JavaScript does have native
+            support for conceptually-similar structures like XML or JSON, but neither of those
+            formats is natively supported in a way that can be streamed; JavaScript requires the
+            entirety of the XML or JSON message to be available at the time of decoding. The
+            Guacamole protocol, on the other hand, can be parsed as it is received, and the presence
+            of length prefixes within each instruction element means that the parser can quickly
+            skip around from instruction to instruction without having to iterate over every
+            character.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-handshake"></a>Handshake phase</h2></div></div></div><p>The handshake phase is the phase of the protocol entered immediately upon connection.
+            It begins with a "select" instruction sent by the client which tells the server which
+            protocol will be loaded:</p><div class="informalexample"><pre class="programlisting">6.select,3.vnc;</pre></div><p>After receiving the "select" instruction, the server will load the associated client
+            support and respond with its protocol version and a list of accepted parameter names
+            using an "args" instruction:</p><div class="informalexample"><pre class="programlisting">4.args,13.VERSION_1_1_0,8.hostname,4.port,8.password,13.swap-red-blue,9.read-only;</pre></div><p>The protocol version is used to negotiate compatibility between differing
+            versions of client and server, allowing the two sides to negotiate the highest
+            supported version and enable or disable features associated with that version.
+            Older versions of the Guacamole Client that do not support this instruction
+            will silently ignore it as an empty connection parameter.  Valid protocol versions
+            are as follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Version</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>1.0.0</td><td><code class="constant">VERSION_1_0_0</code></td><td>This is the default version and applies to any
+                            versions prior to 1.1.0.  Version 1.0.0 of the protocol
+                            does not support protocol negotiation, and requires that
+                            the handshake instructions are delivered in a certain
+                            order, and that they are present (even if empty).</td></tr><tr><td>1.1.0</td><td><code class="constant">VERSION_1_1_0</code></td><td>Protocol version 1.1.0 introduces support for
+                            protocol version negotiation, arbitrary order of the
+                            handshake instructions, and support for passing the
+                            timezone instruction during the handshake.</td></tr></tbody></table></div><p>
+        </p><p>After receiving the list of arguments, the client is required to respond with the list
+            of supported audio, video, and image mimetypes, the optimal display size and resolution,
+            and the values for all arguments available, even if blank.</p><div class="informalexample"><pre class="programlisting">
+4.size,4.1024,3.768,2.96;
+5.audio,9.audio/ogg;
+5.video;
+5.image,9.image/png,10.image/jpeg;
+8.timezone,16.America/New_York;
+7.connect,13.VERSION_1_1_0,9.localhost,4.5900,0.,0.,0.;</pre></div><p>For clarity, we've put each instruction on its own line, but in the real protocol, no
+            newlines exist between instructions. In fact, if there is anything after an instruction
+            other than the start of a new instruction, the connection is closed.</p><p>The following are valid instructions during the handshake:</p><div class="informaltable"><a id="idm46227493168672" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Instruction name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>audio</code></em></td><td><p>The audio codec(s) supported by the client.  In the example
+                            above the client is specifying audio/ogg as the supported codec.</p>
+                        </td></tr><tr><td><em class="parameter"><code>connect</code></em></td><td><p>This is the final instruction of the handshake, terminating
+                            the handshake and indicating that the connection should continue.
+                            This instruction has as its parameters values for the connection
+                            parameters sent by the server in the <code class="constant">args</code>
+                            instruction.  In the example above, this is connection to localhost
+                            on port 5900, with no values for the last three connection parameters.
+                        </p></td></tr><tr><td><em class="parameter"><code>image</code></em></td><td><p>The image formats that the client supports, in order of
+                            preference.  The client in the example above is supporting both PNG
+                            and JPEG.</p></td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td><p>The timezone of the client, in IANA zone key format.  More
+                            information on this instruction is available in
+                            <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>, under documentation related
+                            to the <code class="constant">timezone</code> connection parameters for the
+                            protocols that support it.</p>
+                        </td></tr><tr><td><em class="parameter"><code>video</code></em></td><td><p>The video codec(s) supported by the client.  The above example
+                            is a client that does not support any video codecs.</p></td></tr></tbody></table></div><p>The order of the instructions sent by the client in the handshake is arbitrary, with
+            the exception that the final instruction, connect, will end the handshake and attempt
+            to start the connection.</p><p>Once these instructions have been sent by the client, the server will attempt to
+            initialize the connection with the parameters received and, if successful, respond with
+            a "ready" instruction. This instruction contains the ID of the new client connection and
+            marks the beginning of the interactive phase. The ID is an arbitrary string, but is
+            guaranteed to be unique from all other active connections, as well as from the names of
+            all supported protocols:</p><div class="informalexample"><pre class="programlisting">5.ready,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre></div><p>The actual interactive phase begins immediately after the "ready" instruction is sent.
+            Drawing and event instructions pass back and forth until the connection is
+            closed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-joining"></a>Joining an existing connection</h3></div></div></div><p>Once the handshake phase has completed, that connection is considered active and
+                can be joined by other connections if the ID is provided instead of a protocol name
+                via the "select" instruction:</p><div class="informalexample"><pre class="programlisting">6.select,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre><p>The rest of the handshake phase for a joining connection is identical. Just as
+                    with a new connection, the restrictions or features which apply to the joining
+                    connection are dictated by the parameter values supplied during the
+                    handshake.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-drawing"></a>Drawing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-compositing"></a>Compositing</h3></div></div></div><p>The Guacamole protocol provides compositing operations through the use of "channel
+                masks". The term "channel mask" is simply a description of the mechanism used while
+                designing the protocol to conceptualize and fully enumerate all possible compositing
+                operations based on four different sources of image data: source image data where
+                the destination is opaque, source image data where the destination is transparent,
+                destination image data where the source is opaque, and destination image data where
+                the source is transparent. Assigning a binary value to each of these "channels"
+                creates a unique integer ID for every possible compositing operation, where these
+                operations parallel the operations described by Porter and Duff in their paper. As
+                the HTML5 canvas tag also uses Porter/Duff to describe their compositing operations
+                (as do other graphical APIs), the Guacamole protocol is conveniently similar to the
+                compositing support already present in web browsers, with some operations not yet
+                supported. The following operations are all implemented and known to work correctly
+                in all browsers:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B out A (0x02)</span></dt><dd><p>Clears the destination where the source is opaque, but otherwise draws
+                            nothing. This is useful for masking.</p></dd><dt><span class="term">A atop B (0x06)</span></dt><dd><p>Fills with the source where the destination is opaque only.</p></dd><dt><span class="term">A xor B (0x0A)</span></dt><dd><p>As with logical XOR. Note that this is a compositing operation, not a
+                            bitwise operation. It draws the source where the destination is
+                            transparent, and draws the destination where the source is
+                            transparent.</p></dd><dt><span class="term">B over A (0x0B)</span></dt><dd><p>What you would typically expect when drawing, but reversed. The source
+                            appears only where the destination is transparent, as if you were
+                            attempting to draw the destination over the source, rather than the
+                            source over the destination.</p></dd><dt><span class="term">A over B (0x0E)</span></dt><dd><p>The most common and sensible compositing operation, this draws the
+                            source everywhere, but includes the destination where the source is
+                            transparent.</p></dd><dt><span class="term">A + B (0x0F)</span></dt><dd><p>Simply adds the components of the source image to the destination
+                            image, capping the result at pure white.</p></dd></dl></div><p>The following operations are all implemented, but may work incorrectly in WebKit
+                browsers which always include the destination image where the source is
+                transparent:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B in A (0x01)</span></dt><dd><p>Draws the destination only where the source is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A in B (0x04)</span></dt><dd><p>Draws the source only where the destination is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A out B (0x08)</span></dt><dd><p>Draws the source only where the destination is transparent, clearing
+                            anywhere the source or destination are opaque.</p></dd><dt><span class="term">B atop A (0x09)</span></dt><dd><p>Fills with the destination where the source is opaque only.</p></dd><dt><span class="term">A (0x0C)</span></dt><dd><p>Fills with the source, ignoring the destination entirely.</p></dd></dl></div><p>The following operations are defined, but not implemented, and do not exist as
+                operations within the HTML5 canvas:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Clear (0x00)</span></dt><dd><p>Clears all existing image data in the destination.</p></dd><dt><span class="term">B (0x03)</span></dt><dd><p>Does nothing.</p></dd><dt><span class="term">A xnor B (0x05)</span></dt><dd><p>Adds the source to the destination where the destination or source are
+                            opaque, clearing anywhere the source or destination are transparent.
+                            This is similar to A + B except the aspect of transparency is also
+                            additive.</p></dd><dt><span class="term">(A + B) atop B (0x07)</span></dt><dd><p>Adds the source to the destination where the destination is opaque,
+                            preserving the destination otherwise.</p></dd><dt><span class="term">(A + B) atop A (0x0D)</span></dt><dd><p>Adds the destination to the source where the source is opaque, copying
+                            the source otherwise.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-images"></a>Image data</h3></div></div></div><p>The Guacamole protocol, like many remote desktop protocols, provides a method of
+                sending an arbitrary rectangle of image data and placing it either within a buffer
+                or in a visible rectangle of the screen. Raw image data in the Guacamole protocol is
+                streamed as PNG, JPEG, or WebP data over a stream allocated with the "img"
+                instruction. Depending on the format used, image updates sent in this manner can be
+                RGB or RGBA (alpha transparency) and are automatically palettized if sent using
+                libguac. The streaming system used for image data is generalized and used by
+                Guacamole for other types of streams, including audio and file transfer. For more
+                information about streams in the Guacamole protocol, see <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>.</p><p>Image data can be sent to any specified rectangle within a layer or buffer.
+                Sending the data to a layer means that the image becomes immediately visible, while
+                sending the data to a buffer allows that data to be reused later.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-copying-images"></a>Copying image data between layers</h3></div></div></div><p>Image data can be copied from one layer or buffer into another layer or buffer.
+                This is often used for scrolling (where most of the result of the graphical update
+                is identical to the previous state) or for caching parts of an image.</p><p>Both VNC and RDP provide a means of copying a region of screen data and placing it
+                somewhere else within the same screen. RDP provides an additional means of copying
+                data to a cache, or recalling data from that cache and placing it on the screen.
+                Guacamole takes this concept and reduces it further, as both on-screen and
+                off-screen image storage is the same. The Guacamole "copy" instruction allows you to
+                copy a rectangle of image data, and place it within another layer, whether that
+                layer is the same as the source layer, a different visible layer, or an off-screen
+                buffer.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-graphical-primitives"></a>Graphical primitives</h3></div></div></div><p>The Guacamole protocol provides basic graphics operations similar to those of
+                Cairo or the HTML5 canvas. In many cases, these primitives are useful for remote
+                drawing, and desirable in that they take up less bandwidth than sending
+                corresponding PNG images. Beware that excessive use of primitives leads to an
+                increase in client-side processing, which may reduce the performance of a connected
+                client, especially if that client is on a lower-performance machine like a mobile
+                phone or tablet.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-layers"></a>Buffers and layers</h3></div></div></div><p>All drawing operations in the Guacamole protocol affect a layer, and each layer
+                has an integer index which identifies it. When this integer is negative, the layer
+                is not visible, and can be used for storage or caching of image data. In this case,
+                the layer is referred to within the code and within documentation as a "buffer".
+                Layers are created automatically when they are first referenced in an
+                instruction.</p><p>There is one main layer which is always present called the "default layer". This
+                layer has an index of 0. Resizing this layer resizes the entire remote display.
+                Other layers default to the size of the default layer upon creation, while buffers
+                are always created with a size of 0x0, automatically resizing themselves to fit
+                their contents.</p><p>Non-buffer layers can be moved and nested within each other. In this way, layers
+                provide a simple means of hardware-accelerated compositing. If you need a window to
+                appear above others, or you have some object which will be moving or you need the
+                data beneath it automatically preserved, a layer is a good way of accomplishing
+                this. If a layer is nested within another layer, its position is relative to that of
+                its parent. When the parent is moved or reordered, the child moves with it. If the
+                child extends beyond the parents bounds, it will be clipped.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-streaming"></a>Streams and objects</h2></div></div></div><p>Guacamole supports transfer of clipboard contents, audio, video, and image data, as
+            well as files and arbitrary named pipes.</p><p>Streams are allocated directly with instructions that associate the new stream with
+            particular semantics and metadata, such as the "audio" or "video" instructions used for
+            playing media, the "file" instruction used for file transfer, and the "pipe" instruction
+            for transfer of completely  arbitrary data between client and server. In some cases, the
+            availability and semantics of streams may be explicitly advertised using structured sets
+            of named streams known as "objects".</p><p>Once a stream is allocated, data is sent along the stream in chunks using "blob"
+            instructions, which may be acknowledged by the receiving end by "ack" instructions. The
+            end of the stream is finally signalled with an "end" instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-events"></a>Events</h2></div></div></div><p>When something changes on either side, client or server, such as a key being pressed,
+            the mouse moving, or clipboard data changing, an instruction describing the event is
+            sent.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-disconnecting"></a>Disconnecting</h2></div></div></div><p>The server and client can end the connection at any time. There is no requirement for
+            the server or the client to communicate that the connection needs to terminate. When the
+            client or server wish to end the connection, and the reason is known, they can use the
+            "disconnect" or "error" instructions.</p><p>The disconnect instruction is sent by the client when it is disconnecting. This is
+            largely out of politeness, and the server must be written knowing that the disconnect
+            instruction may not always be sent in time (guacd is written this way).</p><p>If the client does something wrong, or the server detects a problem with the client
+            plugin, the server sends an error instruction, including a description of the problem in
+            the parameters. This informs the client that the connection is being closed.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part II. Developer's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 20. libguac</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/gug.css b/doc/1.3.0/gug/gug.css
new file mode 100644
index 0000000..370de3e
--- /dev/null
+++ b/doc/1.3.0/gug/gug.css
@@ -0,0 +1,179 @@
+
+body {
+
+    color: black;
+    background: white;
+
+    font-family: 'FreeSans', 'Liberation Sans', 'Arial', 'Helvetica', sans-serif;
+    text-align: justify;
+    text-rendering: optimizeLegibility;
+    line-height: 125%;
+
+    margin: 0;
+    padding: 0;
+
+}
+
+/* Green links */
+a[href]         { color: #080; }
+a[href]:visited { color: #884; }
+
+div#content {
+
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: auto;
+    margin-right: auto;
+
+    max-width: 25cm;
+    padding: 1em;
+
+}
+
+/* DOCBOOK */
+
+.navheader hr, .navfooter hr {
+    border: 0;
+    border-bottom: 1px solid black;
+}
+
+.chapter div.toc,
+.appendix div.toc {
+    border: 1px solid #BCBCBC;
+    background: #FBFBFB;
+    margin: 2em;
+    padding: 0 1em;
+    font-size: 0.75em;
+}
+
+.programlisting, .screen {
+    padding: 1em;
+}
+
+.replaceable {
+    color: #008;
+    background: rgba(0, 0, 0, 0.05);
+    border: 1px solid rgba(0, 0, 0, 0.05);
+    font-style: normal;
+    padding: 0 0.25em;
+}
+
+pre .emphasis em {
+    font-style: normal;
+    font-weight: bold;
+}
+
+.book .titlepage {
+    text-align: center;
+    padding: 2em;
+}
+
+.titlepage hr {
+    display: none;
+}
+
+.titlepage .legalnotice {
+    text-align: left;
+}
+
+.mediaobject {
+    text-align: center;
+    float: none;
+    margin: 1em;
+}
+
+.mediaobject img {
+    width: auto;
+    max-width: 100%;
+}
+
+.screenshot img {
+    border: 1px solid black;
+}
+
+.caption {
+    font-size: 0.8em;
+    font-style: italic;
+}
+
+.navfooter, .section {
+    clear: both;
+}
+
+.table-contents, .informaltable {
+    margin: 1em;
+}
+
+.table-contents table,
+.informaltable table {
+    border: 1px solid #BCBCBC;
+    border-collapse: collapse;
+    font-size: 10pt;
+}
+
+.table-contents th, .informaltable th {
+    background: #FBFBFB;
+}
+
+.table-contents td, .table-contents th,
+.informaltable td, .informaltable th {
+    border: 1px solid #BCBCBC;
+    padding: 0.5em;
+    min-width: 1.5in;
+}
+
+.table-contents table table,
+.informaltable table table {
+    border: none;
+}
+
+.table-contents table table td,
+.table-contents table table th,
+.informaltable table table td,
+.informaltable table table th {
+    background: none;
+    padding: 0.25em;
+}
+
+dl.variablelist {
+    margin-left: 1em;
+}
+
+.variablelist .term {
+    font-weight: bold;
+}
+
+blockquote {
+    border-left: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 1px 1em;
+    font-style: oblique;
+    color: rgba(0, 0, 0, 0.75);
+}
+
+div.important {
+    background: #FFFFE8;
+    border: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 0 1em;
+    margin: 2em;
+}
+
+/* Printable styles */
+
+@media print {
+
+    .navheader, .navfooter, .chapter .toc {
+        display: none
+    }
+
+    body {
+        font-size: 10pt;
+    }
+
+    .chapter > .titlepage {
+        margin: 2em 0;
+        font-size: 1.5em;
+        text-align: center; 
+    }
+
+}
+
diff --git a/doc/1.3.0/gug/header-auth.html b/doc/1.3.0/gug/header-auth.html
new file mode 100644
index 0000000..991fd3c
--- /dev/null
+++ b/doc/1.3.0/gug/header-auth.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. HTTP header authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" /><link rel="next" href="cas-auth.html" title="Chapter 11. CAS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. HTTP header authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="header-auth"></a>Chapter 10. HTTP header authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></span></dt><dt><span class="section"><a href="header-auth.html#completing-header-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46227497934064" class="indexterm"></a><p>Guacamole supports delegating authentication to an arbitrary external service, relying on
+        the presence of an HTTP header which contains the username of the authenticated user. This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="important"><h3 class="title">Important</h3><p>All external requests must be properly sanitized if this extension is used. The chosen
+            HTTP header must be stripped from untrusted requests, such that the authentication
+            service is the only possible source of that header. <span class="emphasis"><em>If such sanitization is
+                not performed, it will be trivial for malicious users to add this header manually,
+                and thus gain unrestricted access.</em></span></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="header-downloading"></a>Downloading the HTTP header authentication extension</h2></div></div></div><p>The HTTP header authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The HTTP header authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-header-1.2.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-header-auth"></a>Installing HTTP header authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the HTTP header authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-header-1.2.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use HTTP header authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-header-config"></a>Configuring Guacamole for HTTP header authentication</h3></div></div></div><a id="idm46227498082320" class="indexterm"></a><a id="idm46227496851296" class="indexterm"></a><p>The HTTP header authentication extension provides only one configuration property,
+                and it is optional. By default, the extension will pull the username of the
+                authenticated user from the <code class="constant">REMOTE_USER</code> header, if present. If
+                your authentication system uses a different HTTP header, you will need to override
+                this by specifying the <span class="property">http-auth-header</span> property within <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">http-auth-header</span></span></dt><dd><p>The HTTP header containing the username of the authenticated user.
+                            This property is optional. If not specified,
+                                <code class="constant">REMOTE_USER</code> will be used by default.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-header-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. TOTP two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11. CAS Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/images/duo-add-guacamole.png b/doc/1.3.0/gug/images/duo-add-guacamole.png
new file mode 100644
index 0000000..e90039c
--- /dev/null
+++ b/doc/1.3.0/gug/images/duo-add-guacamole.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/duo-auth-factor-1.png b/doc/1.3.0/gug/images/duo-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.3.0/gug/images/duo-auth-factor-1.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/duo-auth-factor-2.png b/doc/1.3.0/gug/images/duo-auth-factor-2.png
new file mode 100644
index 0000000..8c35648
--- /dev/null
+++ b/doc/1.3.0/gug/images/duo-auth-factor-2.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/duo-copy-details.png b/doc/1.3.0/gug/images/duo-copy-details.png
new file mode 100644
index 0000000..d7faa7a
--- /dev/null
+++ b/doc/1.3.0/gug/images/duo-copy-details.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/duo-rename-guacamole.png b/doc/1.3.0/gug/images/duo-rename-guacamole.png
new file mode 100644
index 0000000..7c63d4e
--- /dev/null
+++ b/doc/1.3.0/gug/images/duo-rename-guacamole.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-connection.png b/doc/1.3.0/gug/images/edit-connection.png
new file mode 100644
index 0000000..5d5f023
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-connection.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-group-memberships.png b/doc/1.3.0/gug/images/edit-group-memberships.png
new file mode 100644
index 0000000..3845373
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-group-memberships.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-group.png b/doc/1.3.0/gug/images/edit-group.png
new file mode 100644
index 0000000..458aaac
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-group.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-sharing-profile.png b/doc/1.3.0/gug/images/edit-sharing-profile.png
new file mode 100644
index 0000000..77d34f3
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-sharing-profile.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-user-group.png b/doc/1.3.0/gug/images/edit-user-group.png
new file mode 100644
index 0000000..16dbae8
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-user-group.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-user-membership.png b/doc/1.3.0/gug/images/edit-user-membership.png
new file mode 100644
index 0000000..ef7d5d9
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-user-membership.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/edit-user.png b/doc/1.3.0/gug/images/edit-user.png
new file mode 100644
index 0000000..eb53c40
--- /dev/null
+++ b/doc/1.3.0/gug/images/edit-user.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/file-browser.png b/doc/1.3.0/gug/images/file-browser.png
new file mode 100644
index 0000000..f531374
--- /dev/null
+++ b/doc/1.3.0/gug/images/file-browser.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/file-transfers.png b/doc/1.3.0/gug/images/file-transfers.png
new file mode 100644
index 0000000..3566bc5
--- /dev/null
+++ b/doc/1.3.0/gug/images/file-transfers.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guac-arch.png b/doc/1.3.0/gug/images/guac-arch.png
new file mode 100644
index 0000000..a38b12c
--- /dev/null
+++ b/doc/1.3.0/gug/images/guac-arch.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guac-menu-disconnect.png b/doc/1.3.0/gug/images/guac-menu-disconnect.png
new file mode 100644
index 0000000..4875712
--- /dev/null
+++ b/doc/1.3.0/gug/images/guac-menu-disconnect.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guac-menu-share-link.png b/doc/1.3.0/gug/images/guac-menu-share-link.png
new file mode 100644
index 0000000..eedebbb
--- /dev/null
+++ b/doc/1.3.0/gug/images/guac-menu-share-link.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guac-menu-share.png b/doc/1.3.0/gug/images/guac-menu-share.png
new file mode 100644
index 0000000..8ceaead
--- /dev/null
+++ b/doc/1.3.0/gug/images/guac-menu-share.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-client-interface.png b/doc/1.3.0/gug/images/guacamole-client-interface.png
new file mode 100644
index 0000000..57c1dc7
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-client-interface.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-drive-download.png b/doc/1.3.0/gug/images/guacamole-drive-download.png
new file mode 100644
index 0000000..1b16ca0
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-drive-download.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-drive.png b/doc/1.3.0/gug/images/guacamole-drive.png
new file mode 100644
index 0000000..8395e4b
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-drive.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-home-screen.png b/doc/1.3.0/gug/images/guacamole-home-screen.png
new file mode 100644
index 0000000..ae95880
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-home-screen.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-preferences.png b/doc/1.3.0/gug/images/guacamole-preferences.png
new file mode 100644
index 0000000..b751e8d
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-preferences.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/guacamole-settings-sections.png b/doc/1.3.0/gug/images/guacamole-settings-sections.png
new file mode 100644
index 0000000..18055bb
--- /dev/null
+++ b/doc/1.3.0/gug/images/guacamole-settings-sections.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-button.png b/doc/1.3.0/gug/images/manage-button.png
new file mode 100644
index 0000000..c1d8cf0
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-button.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-connections.png b/doc/1.3.0/gug/images/manage-connections.png
new file mode 100644
index 0000000..76e4c2f
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-connections.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-groups.png b/doc/1.3.0/gug/images/manage-groups.png
new file mode 100644
index 0000000..b7126f5
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-groups.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-history.png b/doc/1.3.0/gug/images/manage-history.png
new file mode 100644
index 0000000..c25ec5b
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-history.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-sessions.png b/doc/1.3.0/gug/images/manage-sessions.png
new file mode 100644
index 0000000..c6d8325
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-sessions.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/manage-users.png b/doc/1.3.0/gug/images/manage-users.png
new file mode 100644
index 0000000..d00b71c
--- /dev/null
+++ b/doc/1.3.0/gug/images/manage-users.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/session-filter-example-1.png b/doc/1.3.0/gug/images/session-filter-example-1.png
new file mode 100644
index 0000000..a72bbb6
--- /dev/null
+++ b/doc/1.3.0/gug/images/session-filter-example-1.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/session-filter-example-2.png b/doc/1.3.0/gug/images/session-filter-example-2.png
new file mode 100644
index 0000000..11be992
--- /dev/null
+++ b/doc/1.3.0/gug/images/session-filter-example-2.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/totp-auth-factor-1.png b/doc/1.3.0/gug/images/totp-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.3.0/gug/images/totp-auth-factor-1.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/totp-auth-factor-2.png b/doc/1.3.0/gug/images/totp-auth-factor-2.png
new file mode 100644
index 0000000..c2a649f
--- /dev/null
+++ b/doc/1.3.0/gug/images/totp-auth-factor-2.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/totp-enroll-detail.png b/doc/1.3.0/gug/images/totp-enroll-detail.png
new file mode 100644
index 0000000..afde141
--- /dev/null
+++ b/doc/1.3.0/gug/images/totp-enroll-detail.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/totp-enroll.png b/doc/1.3.0/gug/images/totp-enroll.png
new file mode 100644
index 0000000..97474b6
--- /dev/null
+++ b/doc/1.3.0/gug/images/totp-enroll.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/touchpad.png b/doc/1.3.0/gug/images/touchpad.png
new file mode 100644
index 0000000..fa9df42
--- /dev/null
+++ b/doc/1.3.0/gug/images/touchpad.png
Binary files differ
diff --git a/doc/1.3.0/gug/images/touchscreen.png b/doc/1.3.0/gug/images/touchscreen.png
new file mode 100644
index 0000000..85d669c
--- /dev/null
+++ b/doc/1.3.0/gug/images/touchscreen.png
Binary files differ
diff --git a/doc/1.3.0/gug/index.html b/doc/1.3.0/gug/index.html
new file mode 100644
index 0000000..00189d5
--- /dev/null
+++ b/doc/1.3.0/gug/index.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Guacamole Manual</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="next" href="preface.html" title="Introduction" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Guacamole Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm46227498549200"></a>Guacamole Manual</h1></div><div><div class="legalnotice"><a id="idm46227506332144"></a><p>Licensed to the Apache Software Foundation (ASF) under one or more contributor
+                license agreements. See the <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-manual/master/NOTICE" target="_top"><code class="filename">NOTICE</code></a> file distributed with this work for
+                additional information regarding copyright ownership. The ASF licenses this file to
+                you under the Apache License, Version 2.0 (the "License"); you may not use this file
+                except in compliance with the License. You may obtain a copy of the License
+                at:</p><p><a class="link" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top"><code class="uri">http://www.apache.org/licenses/LICENSE-2.0</code></a></p><p>Unless required by applicable law or agreed to in writing, software distributed
+                under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+                CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
+                language governing permissions and limitations under the License.</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="preface.html">Introduction</a></span></dt><dt><span class="part"><a href="users-guide.html">I. User's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dt><span class="chapter"><a href="saml-auth.html">13. SAML Authentication</a></span></dt><dt><span class="chapter"><a href="radius-auth.html">14. RADIUS Authentication</a></span></dt><dt><span class="chapter"><a href="adhoc-connections.html">15. Ad-hoc Connections</a></span></dt><dt><span class="chapter"><a href="using-guacamole.html">16. Using Guacamole</a></span></dt><dt><span class="chapter"><a href="administration.html">17. Administration</a></span></dt><dt><span class="chapter"><a href="troubleshooting.html">18. Troubleshooting</a></span></dt></dl></dd><dt><span class="part"><a href="developers-guide.html">II. Developer's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-protocol.html">19. The Guacamole protocol</a></span></dt><dt><span class="chapter"><a href="libguac.html">20. libguac</a></span></dt><dt><span class="chapter"><a href="guacamole-common.html">21. <span class="package">guacamole-common</span></a></span></dt><dt><span class="chapter"><a href="guacamole-common-js.html">22. guacamole-common-js</a></span></dt><dt><span class="chapter"><a href="guacamole-ext.html">23. guacamole-ext</a></span></dt><dt><span class="chapter"><a href="custom-protocols.html">24. Adding new protocols</a></span></dt><dt><span class="chapter"><a href="custom-auth.html">25. Custom authentication</a></span></dt><dt><span class="chapter"><a href="event-listeners.html">26. Event listeners</a></span></dt><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">27. Writing your own Guacamole application</a></span></dt></dl></dd><dt><span class="part"><a href="appendices.html">III. Appendices</a></span></dt><dd><dl><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Introduction</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/installing-guacamole.html b/doc/1.3.0/gug/installing-guacamole.html
new file mode 100644
index 0000000..f458bbb
--- /dev/null
+++ b/doc/1.3.0/gug/installing-guacamole.html
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Installing Guacamole natively</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" /><link rel="next" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Installing Guacamole natively</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="installing-guacamole"></a>Chapter 2. Installing Guacamole natively</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#required-dependencies">Required dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#optional-dependencies">Optional dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-source">Obtaining the source code</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-build-process">The build process</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-installation">Installation</a></span></dt></dl></dd><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#idm46227497376464">What about WebSocket?</a></span></dt></dl></dd></dl></div><a id="idm46227497777712" class="indexterm"></a><a id="idm46227497776816" class="indexterm"></a><p>Guacamole is separated into two pieces: <span class="package">guacamole-server</span>, which
+        provides the <span class="package">guacd</span> proxy and related libraries, and
+            <span class="package">guacamole-client</span>, which provides the client to be served by your
+        servlet container, usually <a class="link" href="http://tomcat.apache.org/" target="_top">Tomcat</a>.</p><p><span class="package">guacamole-client</span> is available in binary form, but
+            <span class="package">guacamole-server</span> must be built from source. Don't be discouraged:
+        building the components of Guacamole from source is <span class="emphasis"><em>not</em></span> as difficult as
+        it sounds, and the build process is automated. You just need to be sure you have the
+        necessary tools installed ahead of time. With the necessary dependencies in place, building
+        Guacamole only takes a few minutes.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-server"></a>Building <span class="package">guacamole-server</span></h2></div></div></div><a id="idm46227497769696" class="indexterm"></a><a id="idm46227497768224" class="indexterm"></a><a id="idm46227497766880" class="indexterm"></a><a id="idm46227497765536" class="indexterm"></a><a id="idm46227497764192" class="indexterm"></a><a id="idm46227498058016" class="indexterm"></a><a id="idm46227498056672" class="indexterm"></a><a id="idm46227498055200" class="indexterm"></a><a id="idm46227498053728" class="indexterm"></a><a id="idm46227498052256" class="indexterm"></a><a id="idm46227498050784" class="indexterm"></a><a id="idm46227498049344" class="indexterm"></a><p><span class="package">guacamole-server</span> contains all the native, server-side components
+            required by Guacamole to connect to remote desktops. It provides a common C library,
+                <span class="package">libguac</span>, which all other native components depend on, as well as
+            separate libraries for each supported protocol, and <span class="package">guacd</span>, the heart
+            of Guacamole.</p><p><span class="package">guacd</span> is the proxy daemon that runs on your Guacamole server,
+            accepts users' connections that are tunneled through the Guacamole web application, and
+            then connects to remote desktops on their behalf. Building <span class="package">guacd</span>
+            creates an executable called <code class="filename">guacd</code> which can be run manually or, if
+            you wish, automatically when your computer starts up.</p><p>To build <span class="package">guacamole-server</span>, you will need a C compiler (such as
+                <span class="package">gcc</span>) and the libraries that <span class="package">guacamole-server</span>
+            depends on. Some dependencies are absolutely required, while others are optional. The
+            presence of optional dependencies enables additional features.</p><div class="important"><h3 class="title">Important</h3><p>Many Linux distributions separate library packages into binary and "development"
+                packages; <span class="emphasis"><em>you will need to install the development packages</em></span>.
+                These will usually end in a "-dev" or "-devel" suffix.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="required-dependencies"></a>Required dependencies</h3></div></div></div><p>In order to build <span class="package">guacamole-server</span>, you will need
+                    <span class="package">Cairo</span>, <span class="package">libjpeg</span>, <span class="package">libpng</span>,
+                and the OSSP UUID library. These libraries are strictly required <span class="emphasis"><em>in all
+                    cases</em></span> - Guacamole cannot be built without them.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="http://cairographics.org/" target="_top">Cairo</a></td><td>
+                                <p>Cairo is used by libguac for graphics rendering. Guacamole
+                                    cannot function without Cairo installed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libcairo2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">cairo-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libjpeg-turbo.virtualgl.org/" target="_top">libjpeg-turbo</a></td><td>
+                                <p>libjpeg-turbo is used by libguac to provide JPEG support.
+                                    Guacamole will not build without this library present:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian package</th><td><span class="package">libjpeg62-turbo-dev</span></td></tr><tr><th>Ubuntu package</th><td><span class="package">libjpeg-turbo8-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-turbo-devel</span></td></tr></tbody></table></div>
+                                <p>If libjpeg-turbo is unavailable on your platform, and you do
+                                    not wish to build it from source, <a class="link" href="http://www.ijg.org/" target="_top">libjpeg</a> will work as
+                                    well, though it will not be quite as fast:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libjpeg62-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libpng.org/pub/png/libpng.html" target="_top">libpng</a></td><td>
+                                <p>libpng is used by libguac to write PNG images, the core image
+                                    type used by the Guacamole protocol. Guacamole cannot function
+                                    without libpng.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpng12-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libpng-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.gnu.org/software/libtool/manual/libtool.html" target="_top">libtool</a></td><td>
+                                <p>libtool is used during the build process. 
+                                libtool creates compiled libraries needed for Guacamole.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtool-bin</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtool</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.ossp.org/pkg/lib/uuid/" target="_top">OSSP
+                                    UUID</a></td><td>
+                                <p>OSSP UUID is used by libguac to assign unique IDs to each
+                                    Guacamole connection. These unique IDs are the basis for
+                                    connection sharing support.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libossp-uuid-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">uuid-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="optional-dependencies"></a>Optional dependencies</h3></div></div></div><p>The optional dependencies of Guacamole dictate which parts of
+                    <span class="package">guacamole-server</span> will be built. This includes the support for
+                various remote desktop protocols, as well as any additional features of those
+                protocols:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>VNC support depends on the <span class="package">libvncclient</span> library, which
+                        is part of <span class="package">libVNCServer</span>.</p></li><li class="listitem"><p>RDP support depends on a recent version of <span class="package">FreeRDP</span> (1.0
+                        or higher, but please <a class="link" href="https://github.com/FreeRDP/FreeRDP/issues/2839" target="_top">not a
+                            non-release version from git</a>).</p></li><li class="listitem"><p>SSH support depends on <span class="package">libssh2</span>, <span class="package">OpenSSL</span>
+                        and <span class="package">Pango</span> (a font rendering and text layout library, used
+                        by Guacamole's built-in terminal emulator).</p></li><li class="listitem"><p>Telnet depends on <span class="package">libtelnet</span> and
+                            <span class="package">Pango</span>.</p></li><li class="listitem"><p>Kubernetes support depends on <span class="package">libwebsockets</span>,
+                            <span class="package">OpenSSL</span>, and <span class="package">Pango</span>.</p></li></ul></div><p>The <span class="command"><strong>guacenc</strong></span> utility, provided by
+                    <span class="package">guacamole-server</span> to translate screen recordings into video,
+                depends on FFmpeg, and will only be built if at least the
+                    <span class="package">libavcodec</span>, <span class="package">libavformat</span>,
+                    <span class="package">libavutil</span>, and <span class="package">libswscale</span> libraries
+                provided by FFmpeg are installed.</p><div class="important"><h3 class="title">Important</h3><p>If you lack these dependencies, <span class="emphasis"><em>then the features or protocols which
+                        depend on them will not be enabled</em></span>. Please read this section
+                    carefully before deciding not to install an optional dependency.</p></div><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="https://ffmpeg.org/" target="_top">FFmpeg</a></td><td>
+                                <p>The <span class="package">libavcodec</span>,
+                                        <span class="package">libavformat</span>,
+                                    <span class="package">libavutil</span>, and <span class="package">libswscale</span>
+                                    libraries provided by FFmpeg are used by
+                                        <span class="command"><strong>guacenc</strong></span> to encode video streams when
+                                    translating recordings of Guacamole sessions. Without FFmpeg,
+                                    the <span class="command"><strong>guacenc</strong></span> utility will simply not be
+                                    built.</p>
+                                <p>If you do not wish to make graphical recordings of Guacamole
+                                    sessions, or do not wish to translate such recordings into
+                                    video, then FFmpeg is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td>
+                                                  <p><span class="package">libavcodec-dev</span>,
+                                                  <span class="package">libavformat-dev</span>,
+                                                  <span class="package">libavutil-dev</span>,
+                                                  <span class="package">libswscale-dev</span></p>
+                                                </td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">ffmpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freerdp.com/" target="_top">FreeRDP</a></td><td>
+                                <p>FreeRDP 2.0.0 or later is required for RDP support. If you do
+                                    not wish to build RDP support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">freerdp2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">freerdp-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.pango.org/" target="_top">Pango</a></td><td>
+                                <p>Pango is a text layout library which Guacamole uses to render
+                                    text for protocols that require a terminal (Kubernetes, SSH, and
+                                    telnet). If you do not wish to build any terminal-based protocol
+                                    support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpango1.0-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pango-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libssh2.org/" target="_top">libssh2</a></td><td>
+                                <p>libssh2 is required for SSH support. If you do not wish to
+                                    build SSH support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssh2-1-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libssh2-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://github.com/seanmiddleditch/libtelnet" target="_top">libtelnet</a></td><td>
+                                <p>libtelnet is required for telnet support. If you do not wish
+                                    to build telnet support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtelnet-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtelnet-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libvnc.github.io/" target="_top">libVNCServer</a></td><td>
+                                <p>libVNCServer provides libvncclient, which is required for VNC
+                                    support. If you do not wish to build VNC support, this library
+                                    is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvncserver-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvncserver-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://libwebsockets.org/" target="_top">libwebsockets</a></td><td>
+                                <p>libwebsockets is required for Kubernetes support. If you do
+                                    not wish to build Kubernetes support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebsockets-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebsockets-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freedesktop.org/wiki/Software/PulseAudio/" target="_top">PulseAudio</a></td><td>
+                                <p>PulseAudio provides libpulse, which is used by Guacamole's VNC
+                                    support to provide experimental audio support. If you are not
+                                    going to be using the experimental audio support for VNC, you do
+                                    not need this library.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpulse-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pulseaudio-libs-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.openssl.org/" target="_top">OpenSSL</a></td><td>
+                                <p>OpenSSL provides support for SSL and TLS - two common
+                                    encryption schemes that make up the majority of encrypted web
+                                    traffic.</p>
+                                <p>If you have libssl installed, guacd will be built with SSL
+                                    support, allowing communication between the web application and
+                                    guacd to be encrypted. This library is also required for SSH
+                                    support, for manipulating public/private keys, and for
+                                    Kubernetes support, for SSL/TLS connections to the Kubernetes
+                                    server.</p>
+                                <p>Without SSL support, there will be no option to encrypt
+                                    communication to guacd, and support for SSH and Kubernetes
+                                    cannot be built.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssl-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">openssl-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://xiph.org/vorbis/" target="_top">libvorbis</a></td><td>
+                                <p>libvorbis provides support for Ogg Vorbis - a free and open
+                                    standard for sound compression. If installed, libguac will be
+                                    built with support for Ogg Vorbis, and protocols supporting
+                                    audio will use Ogg Vorbis compression when possible.</p>
+                                <p>Otherwise, sound will only be encoded as WAV (uncompressed),
+                                    and will only be available if your browser also supports
+                                    WAV.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvorbis-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvorbis-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://developers.google.com/speed/webp/" target="_top">libwebp</a></td><td>
+                                <p>libwebp is used by libguac to write WebP images. Though
+                                    support for WebP is not mandated by the Guacamole protocol, WebP
+                                    images will be used if supported by both the browser and by
+                                    libguac.</p>
+                                <p>Lacking WebP support, Guacamole will simply use JPEG in cases
+                                    that it would have preferred WebP.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebp-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebp-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-source"></a>Obtaining the source code</h3></div></div></div><p>You can obtain a copy of the <span class="package">guacamole-server</span> source from the
+                Guacamole project web site. These releases are stable snapshots of the latest code
+                which have undergone enough testing that the Guacamole team considers them fit for
+                public consumption. Source downloaded from the project web site will take the form
+                of a <code class="filename">.tar.gz</code> archive which you can extract from the command
+                line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-server-1.3.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server-1.3.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>If you want the absolute latest code, and don't care that the code hasn't been as
+                rigorously tested as the code in stable releases, you can also clone the Guacamole
+                team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-server.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-server'...
+remote: Counting objects: 6769, done.
+remote: Compressing objects: 100% (2244/2244), done.
+remote: Total 6769 (delta 3058), reused 6718 (delta 3008)
+Receiving objects: 100% (6769/6769), 2.32 MiB | 777 KiB/s, done.
+Resolving deltas: 100% (3058/3058), done.</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-build-process"></a>The build process</h3></div></div></div><p>Once the <span class="package">guacamole-server</span> source has been downloaded and
+                extracted, you need to run <code class="filename">configure</code>. This is a shell script
+                automatically generated by GNU Autotools, a popular build system used by the
+                Guacamole project for <span class="package">guacamole-server</span>. Running
+                    <code class="filename">configure</code> will determine which libraries are available on
+                your system and will select the appropriate components for building depending on
+                what you actually have installed.</p><div class="important"><h3 class="title">Important</h3><p>Source downloaded directly from git will not contain this
+                        <code class="filename">configure</code> script, as autogenerated code is not included
+                    in the project's repositories. If you downloaded the code from the project's git
+                    repositories directly, you will need to generate <code class="filename">configure</code>
+                    manually:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server/</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="prompt">$</code></pre><p>Doing this requires GNU Autotools to be installed.</p><p>Source archives downloaded from the project website contain the
+                            <code class="filename">configure</code> script and all other necessary build
+                        files, and thus do not require GNU Autotools to be installed on the build
+                        machine.</p></div></div><p>Once you run <code class="filename">configure</code>, you can see what a listing of what
+                libraries were found and what it has determined should be built:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure --with-init-dir=<em class="replaceable"><code>/etc/init.d</code></em></code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+
+------------------------------------------------
+guacamole-server version 1.3.0
+------------------------------------------------
+
+   Library status:
+
+     freerdp2 ............ yes
+     pango ............... yes
+     libavcodec .......... yes
+     libavformat ......... yes
+     libavutil ........... yes
+     libssh2 ............. yes
+     libssl .............. yes
+     libswscale .......... yes
+     libtelnet ........... yes
+     libVNCServer ........ yes
+     libvorbis ........... yes
+     libpulse ............ yes
+     libwebsockets ....... yes
+     libwebp ............. yes
+     wsock32 ............. no
+
+   Protocol support:
+
+      Kubernetes .... yes
+      RDP ........... yes
+      SSH ........... yes
+      Telnet ........ yes
+      VNC ........... yes
+
+   Services / tools:
+
+      guacd ...... yes
+      guacenc .... yes
+      guaclog .... yes
+
+   Init scripts: /etc/init.d
+   Systemd units: no
+
+Type "make" to compile guacamole-server.
+</code>
+<code class="prompt">$</code></pre></div><p><a id="idm46227497459744" class="indexterm"></a>The <code class="option">--with-init-dir=/etc/init.d</code> shown above prepares
+                the build to install a startup script for <span class="package">guacd</span> into the
+                    <code class="filename">/etc/init.d</code> directory, such that we can later easily
+                configure <span class="package">guacd</span> to start automatically on boot. If you do not
+                wish guacd to start automatically at boot, leave off the
+                    <code class="option">--with-init-dir</code> option. If the directory containing your
+                distribution's startup scripts differs from the common
+                    <code class="filename">/etc/init.d</code>, replace <code class="filename">/etc/init.d</code> with
+                the proper directory here. You may need to consult your distribution's
+                documentation, or do a little digging in <code class="filename">/etc</code>, to determine the
+                proper location.</p><p>Here, <code class="filename">configure</code> has found everything, including all optional
+                libraries, and will build all protocol support, even support for Ogg Vorbis sound in
+                RDP. If you are missing some libraries, some of the
+                    "<code class="computeroutput">yes</code>" answers above will read
+                    "<code class="computeroutput">no</code>". If a library which is strictly required
+                is missing, the script will fail outright, and you will need to install the missing
+                dependency. If, after running <code class="filename">configure</code>, you find support for
+                something you wanted is missing, simply install the corresponding dependencies and
+                run <code class="filename">configure</code> again.</p><div class="important"><h3 class="title">Important</h3><p>All protocols that require a terminal (Kubernetes, SSH, and telnet) require
+                    that fonts are installed on the Guacamole server in order to function, as output
+                    from the terminal cannot be rendered otherwise. Support for these protocols will
+                    build just fine if fonts are not installed, but it will fail to connect when
+                    used:</p><div class="informalexample"><pre class="screen">Aug 23 14:09:45 my-server guacd[5606]: Unable to get font "monospace"</pre></div><p>If terminal-based connections are not working and you see such a message in
+                    syslog, you should make sure fonts are installed and try again.</p></div><p>Once <code class="filename">configure</code> is finished, just type
+                    "<strong class="userinput"><code>make</code></strong>", and it will <span class="package">guacamole-server</span>
+                will compile:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">Making all in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Nothing to be done for `all-am'.
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">$</code></pre></div><p>Quite a bit of output will scroll up the screen as all the components are
+                compiled.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-installation"></a>Installation</h3></div></div></div><p>Once everything finishes, all you have left to do is type "<strong class="userinput"><code>make
+                    install</code></strong>" to install the components that were built, and then
+                    "<strong class="userinput"><code>ldconfig</code></strong>" to update your system's cache of installed
+                libraries:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">Making install in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the `-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the `LD_RUN_PATH' environment variable
+     during linking
+   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Nothing to be done for `install-exec-am'.
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong>
+<code class="prompt">#</code>   </pre></div><p>At this point, everything is installed, but <span class="package">guacd</span> is not
+                running. You will need to run guacd in order to use Guacamole once the client
+                components are installed as well.</p><p>Beware that even after installing <span class="package">guacd</span> and its startup script,
+                you will likely still have to activate the service for it to start automatically.
+                Doing this varies by distribution, but each distribution will have documentation
+                describing how to do so.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-client"></a><span class="package">guacamole-client</span></h2></div></div></div><a id="idm46227497431392" class="indexterm"></a><a id="idm46227497429920" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p>Normally, you don't need to build <span class="package">guacamole-client</span>, as it is
+                written in Java and is cross-platform. You can easily obtain the latest version of
+                    <span class="package">guacamole-client</span> from the release archives of the Guacamole
+                project web site, including all supported extensions, without having to build it
+                yourself.</p><p>If you do not want to build guacamole-client from source, just download
+                    <code class="filename">guacamole.war</code> from the project web site, along with any
+                desired extensions, and skip ahead to <a class="xref" href="installing-guacamole.html#deploying-guacamole" title="Deploying Guacamole">the section called “Deploying Guacamole”</a>.</p></div><p><span class="package">guacamole-client</span> contains all Java and JavaScript components of
+            Guacamole (<span class="package">guacamole</span>, <span class="package">guacamole-common</span>,
+                <span class="package">guacamole-ext</span>, and <span class="package">guacamole-common-js</span>). These
+            components ultimately make up the web application that will serve the HTML5 Guacamole
+            client to users that connect to your server. This web application will then connect to
+                <span class="package">guacd</span>, part of <span class="package">guacamole-server</span>, on behalf of
+            connected users in order to serve them any remote desktop they are authorized to
+            access.</p><p>To compile <span class="package">guacamole-client</span>, all you need is Apache Maven and a
+            copy of the Java JDK. Most, if not all, Linux distributions will provide packages for
+            these.</p><p>You can obtain a copy of the <span class="package">guacamole-client</span> source from the
+            Guacamole project web site. These releases are stable snapshots of the latest code which
+            have undergone enough testing that the Guacamole team considers them fit for public
+            consumption. Source downloaded from the project web site will take the form of a
+                <code class="filename">.tar.gz</code> archive which you can extract from the command
+            line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-client-1.3.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-client-1.3.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>As with <span class="package">guacamole-server</span>, if you want the absolute latest code, and
+            don't care that the code hasn't been as rigorously tested as the code in stable
+            releases, you can also clone the Guacamole team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-client.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-client'...
+remote: Counting objects: 12788, done.
+remote: Compressing objects: 100% (4183/4183), done.
+remote: Total 12788 (delta 3942), reused 12667 (delta 3822)
+Receiving objects: 100% (12788/12788), 3.23 MiB | 799 KiB/s, done.
+Resolving deltas: 100% (3942/3942), done.</code>
+<code class="prompt">$</code></pre></div><p>Unlike <span class="package">guacamole-server</span>, even if you grab the code from the git
+            repositories, you won't need to run anything before building. There are no scripts that
+            need to be generated before building - all Maven needs is the
+                <code class="filename">pom.xml</code> file provided with the source.</p><p>To build <span class="package">guacamole-client</span>, just run "<strong class="userinput"><code>mvn
+                package</code></strong>". This will invoke Maven to automatically build and package all
+            components, producing a single <code class="filename">.war</code> file, which contains the entire
+            web application:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn package</code></strong>
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Build Order:
+[INFO] 
+[INFO] guacamole-common
+[INFO] guacamole-ext
+[INFO] guacamole-common-js
+[INFO] guacamole
+[INFO] guacamole-auth-cas
+[INFO] guacamole-auth-duo
+[INFO] guacamole-auth-header
+[INFO] guacamole-auth-jdbc
+[INFO] guacamole-auth-jdbc-base
+[INFO] guacamole-auth-jdbc-mysql
+[INFO] guacamole-auth-jdbc-postgresql
+[INFO] guacamole-auth-jdbc-sqlserver
+[INFO] guacamole-auth-jdbc-dist
+[INFO] guacamole-auth-ldap
+[INFO] guacamole-auth-openid
+[INFO] guacamole-auth-quickconnect
+[INFO] guacamole-auth-totp
+[INFO] guacamole-example
+[INFO] guacamole-playback-example
+[INFO] guacamole-client
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common ................................... SUCCESS [ 21.852 s]
+[INFO] guacamole-ext ...................................... SUCCESS [  9.055 s]
+[INFO] guacamole-common-js ................................ SUCCESS [  1.988 s]
+[INFO] guacamole .......................................... SUCCESS [ 18.040 s]
+[INFO] guacamole-auth-cas ................................. SUCCESS [  4.203 s]
+[INFO] guacamole-auth-duo ................................. SUCCESS [  2.251 s]
+[INFO] guacamole-auth-header .............................. SUCCESS [  1.399 s]
+[INFO] guacamole-auth-jdbc ................................ SUCCESS [  1.396 s]
+[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [  3.266 s]
+[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [  4.665 s]
+[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [  3.764 s]
+[INFO] guacamole-auth-jdbc-sqlserver ...................... SUCCESS [  3.738 s]
+[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  1.214 s]
+[INFO] guacamole-auth-ldap ................................ SUCCESS [  1.991 s]
+[INFO] guacamole-auth-openid .............................. SUCCESS [  2.204 s]
+[INFO] guacamole-auth-quickconnect ........................ SUCCESS [  2.983 s]
+[INFO] guacamole-auth-totp ................................ SUCCESS [  8.154 s]
+[INFO] guacamole-example .................................. SUCCESS [  0.895 s]
+[INFO] guacamole-playback-example ......................... SUCCESS [  0.795 s]
+[INFO] guacamole-client ................................... SUCCESS [  7.478 s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 01:41 min
+[INFO] Finished at: 2018-10-15T17:08:29-07:00
+[INFO] Final Memory: 42M/379M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Once the Guacamole web application is built, there will be a .war file in the
+                <code class="filename">guacamole/target/</code> subdirectory of the current directory (the
+            directory you were in when you ran <span class="application">mvn</span>), ready to be deployed
+            to a servlet container like Tomcat.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="deploying-guacamole"></a>Deploying Guacamole</h2></div></div></div><a id="idm46227497399872" class="indexterm"></a><p>The web application portion of Guacamole is packaged as a fully self-contained
+                <code class="filename">.war</code> file. If you downloaded Guacamole from the main project
+            web site, this file will be called <code class="filename">guacamole.war</code>. Deploying this
+            involves copying the file into the directory your servlet container uses for
+                <code class="filename">.war</code> files. In the case of Tomcat, this will be
+                    <code class="filename"><em class="replaceable"><code>CATALINA_HOME</code></em>/webapps/</code>. The
+            location of <code class="envar">CATALINA_HOME</code> will vary by how Tomcat was installed, but is
+            commonly <code class="filename">/var/lib/tomcat</code>, <code class="filename">/var/lib/tomcat7</code>, or
+            similar:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole.war <em class="replaceable"><code>/var/lib/tomcat</code></em>/webapps</code></strong>
+<code class="prompt">#</code></pre></div><p>If you have built guacamole-client from source, the required <code class="filename">.war</code>
+            file will be within the <code class="filename">guacamole/target/</code> directory and will
+            contain an additional version suffix. As Tomcat will determine the location of the web
+            application from the name of the <code class="filename">.war</code> file, you will likely want to
+            rename this to simply <code class="filename">guacamole.war</code> while copying:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole/target/guacamole-1.3.0.war <em class="replaceable"><code>/var/lib/tomcat/webapps</code></em>/guacamole.war</code></strong>
+<code class="prompt">#</code></pre></div><p>Again, if you are using a different servlet container or if Tomcat is installed to a
+            different location, you will need to check the documentation of your servlet container,
+            distribution, or both to determine the proper location for deploying
+                <code class="filename">.war</code> files like <code class="filename">guacamole.war</code>.</p><p>Once the <code class="filename">.war</code> file is in place, you may need to restart Tomcat to
+            force Tomcat to deploy the new web application, and the <span class="package">guacd</span> daemon
+            must be started if it isn't running already. The command to restart Tomcat and
+                <span class="package">guacd</span> will vary by distribution. Typically, you can do this by
+            running the corresponding init scripts with the "restart" option:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/tomcat7 restart</code></strong>
+<code class="computeroutput">Stopping Tomcat... OK
+Starting Tomcat... OK</code>
+<code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/guacd start</code></strong>
+<code class="computeroutput">Starting guacd: SUCCESS
+guacd[6229]: INFO:  Guacamole proxy daemon (guacd) version 1.3.0 started</code>
+<code class="prompt">#</code></pre></div><div class="important"><h3 class="title">Important</h3><p>If you want Guacamole to start on boot, you will need to configure the Tomcat and
+                    <span class="package">guacd</span> services to run automatically. Your distribution will
+                provide documentation for doing this.</p></div><p>After restarting Tomcat and starting <span class="package">guacd</span>, Guacamole is
+            successfully installed, though it will not be fully running. In its current state, it is
+            completely unconfigured, and further steps are required to add at least one Guacamole
+            user and a few connections. This is covered in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227497376464"></a>What about WebSocket?</h3></div></div></div><a id="idm46227497375728" class="indexterm"></a><p>Guacamole will use WebSocket automatically if supported by the browser and your
+                servlet container. In the event that Guacamole cannot connect using WebSocket, it
+                will immediately and transparently fall back to using HTTP.</p><p>WebSocket is supported in Guacamole for Tomcat 7.0.37 or higher, Jetty 8 or
+                higher, and any servlet container supporting JSR 356, the standardized Java API for
+                WebSocket.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Implementation and architecture </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Installing Guacamole with Docker</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/jdbc-auth.html b/doc/1.3.0/gug/jdbc-auth.html
new file mode 100644
index 0000000..8495b1a
--- /dev/null
+++ b/doc/1.3.0/gug/jdbc-auth.html
@@ -0,0 +1,1109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Database authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" /><link rel="next" href="ldap-auth.html" title="Chapter 7. LDAP authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. Database authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="jdbc-auth"></a>Chapter 6. Database authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="jdbc-auth.html#idm46227496294336">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-mysql">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-postgresql">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-sqlserver">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#idm46227496716912">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227495382432">Granting Guacamole access to the database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46227495377104">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227496315520">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227495723200">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-configuration">Configuring Guacamole for database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-restrict">Restricting authentication to database users only</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-auto-create">Auto-creating database users</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227496363296">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-permissions">Permissions</a></span></dt></dl></dd></dl></div><a id="idm46227496737552" class="indexterm"></a><a id="idm46227496988928" class="indexterm"></a><a id="idm46227496988032" class="indexterm"></a><p>Guacamole supports authentication via MySQL, PostgreSQL, or SQL Server databases through
+        extensions available from the project website. Using a database for authentication provides
+        additional features, such as the ability to use load balancing groups of connections and a
+        web-based administrative interface. Unlike the default, XML-driven authentication module, all
+        changes to users and connections take effect immediately; users need not logout and back in
+        to see new connections.</p><p>While most authentication extensions function independently, the database authentication
+        can act in a subordinate role, allowing users and user groups from other authentication
+        extensions to be associated with connections within the database. Users and groups are
+        considered identical to those within the database if they have the same names, and the
+        authentication result of another extension will be trusted if it succeeds. A user with an
+        account under multiple systems will thus be able to see data from each system after
+        successfully logging in. For more information on using the database authentication alongside
+        other mechanisms, see <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a> within <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>.</p><p>To use the database authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A supported database - currently MariaDB, MySQL, PostgreSQL, or SQL Server.</p></li><li class="listitem"><p>Sufficient permission to create new databases, to create new users, and to grant
+                those users permissions.</p></li><li class="listitem"><p>Network access to the database from the Guacamole server.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46227496294336"></a>Downloading the database authentication extension</h2></div></div></div><p>The database authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The database authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">mysql/</code></span></dt><dd><p>Contains the MySQL/MariaDB authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.3.0.jar</code>, along with a
+                            <code class="filename">schema/</code> directory containing MySQL-specific SQL
+                        scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.3.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the MySQL JDBC
+                        driver must be placed within <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The MySQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain a supported JDBC driver
+                            <code class="filename">.jar</code> yourself.  The MySQL driver can be downloaded
+                            from <a class="link" href="http://dev.mysql.com/downloads/connector/j/" target="_top">MySQL's
+                            website</a>, and is known as "Connector/J". The required
+                            <code class="filename">.jar</code> will be within a <code class="filename">.tar.gz</code>
+                        archive.</p><p>In addition to the parameters below that are common to all database
+                            extensions, the MySQL extension supports properties that configure behavior
+                            specific to MySQL-compatible servers.</p><p>The <span class="property">mysql-driver</span> property, which controls which JDBC
+                            driver the extension attempts to load and its compatibility with various
+                            target database implementations. The extension currently supports the
+                            following values for the <span class="property">mysql-driver</span> property:
+                        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">mysql</span></dt><dd><p>The MySQL JDBC driver, known as Connector/J.
+                                            This is the default.</p></dd><dt><span class="term">mariadb</span></dt><dd><p>The MariaDB JDBC driver.</p></dd></dl></div><p>
+                    </p><p>The <span class="property">mysql-server-timezone</span> property allows you to
+                        to specify the timezone the MySQL server is configured to run in. While
+                        the MySQL driver attempts to auto-detect the timezone in use by the server,
+                        there are many cases where the timezone provided by the operating system
+                        is either unknown by Java, or matches multiple timezones. In these cases
+                        MySQL may either complain or refuse the connection unless the timezone
+                        is specified as part of the connection. This property allows the timezone
+                        of the server to be specified so that the connection can continue and
+                        the JDBC driver can properly translate timestamps. The property accepts
+                        timezones in the following formats:
+                        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Region/Locale</span></dt><dd><p>Well-known TimeZone Identifiers, in the Region/Locale
+                                        format.  Examples are:
+                                        </p><div class="informalexample"><pre class="programlisting">mysql-server-timezone: America/Los_Angeles
+mysql-server-timezone: Africa/Johannesburg
+mysql-server-timezone: China/Shanghai</pre></div><p>
+                                    </p></dd><dt><span class="term">GMT+/-HH:MM</span></dt><dd><p>GMT or custom timezones specified by GMT offset. Examples
+                                        of valid GMT specifications are:
+                                        </p><div class="informalexample"><pre class="programlisting">mysql-server-timezone: GMT
+mysql-server-timezone: GMT-00:00
+mysql-server-timezone: GMT+0000
+mysql-server-timezone: GMT-0</pre></div><p>
+                                    </p><p>Examples of custom timezones specified by GMT offsets are:
+                                        </p><div class="informalexample"><pre class="programlisting">mysql-server-timezone: GMT+0130
+mysql-server-timezone: GMT-0430
+mysql-server-timezone: GMT+06:00
+mysql-server-timezone: GMT-9</pre></div><p>
+                                    </p></dd></dl></div><p>
+                    </p><p>The MySQL Driver implements several parameters specific to configuring
+                        SSL for secure connections to MySQL servers that support or require
+                        encrypted communications. <span class="emphasis"><em>Older versions of MySQL Connector/J
+                            have known issues with SSL verification - if you experience problems
+                            connecting to SSL-secured MySQL databases it is recommended that
+                            you update to a current version of the driver.</em></span></p><p>Configuration parameters for MySQL-compatible SSL support are as
+                        follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">mysql-ssl-mode</span></td><td>
+                                        <p>This property sets the SSL mode that the JDBC
+                                            driver will attempt to use when communicating
+                                            with the remote MySQL server.  The values for
+                                            this property match the standard values supported
+                                            by the MySQL and MariaDB JDBC drivers:</p>
+                                        <div class="variablelist"><dl class="variablelist"><dt><span class="term">disabled</span></dt><dd><p>Do not use SSL, and fail if the
+                                                        server requires it. For compatibility
+                                                        this will also set the legacy JDBC
+                                                        driver property
+                                                        <span class="property">useSSL</span> to false.
+                                                    </p></dd><dt><span class="term">preferred</span></dt><dd><p>Prefer SSL, but fall back to
+                                                        plain-text if an SSL connection
+                                                        cannot be negotiated. This
+                                                        is the default.</p></dd><dt><span class="term">required</span></dt><dd><p>Require SSL connections, and fail
+                                                        if SSL cannot be negotiated. This mode
+                                                        does not perform any validition checks
+                                                        on the certificate in use by the server,
+                                                        the issuer, etc.</p></dd><dt><span class="term">verify-ca</span></dt><dd><p>Require SSL connections, and check
+                                                        to make sure that the certificate issuer
+                                                        is known to be valid.</p></dd><dt><span class="term">verify-identity</span></dt><dd><p>Require SSL connections, and check
+                                                        to make sure that the server certificate
+                                                        is issued by a known authority, and that
+                                                        the identity of the server matches the
+                                                        identity on the certificate.</p></dd></dl></div>
+                                    </td></tr><tr><td><span class="property">mysql-ssl-trust-store</span></td><td>
+                                        <p>The file that will store trusted SSL certificates
+                                            for the JDBC driver to use when validating CA and
+                                            server certificates. This should be a JKS-formatted
+                                            certificate store. This property is optional and
+                                            defaults to Java's normal trusted certificate
+                                            locations, which vary based on the version of
+                                            Java in use.</p>
+                                    </td></tr><tr><td><span class="property">mysql-ssl-trust-password</span></td><td>
+                                        <p>The password to use to access the SSL trusted
+                                            certificate store, if one is required. By default
+                                            no password will be used.</p>
+                                    </td></tr><tr><td><span class="property">mysql-ssl-client-store</span></td><td>
+                                        <p>The file that contains the client certificate to
+                                            use when making SSL connections to the MySQL server.
+                                            This should be a JKS-formatted certificate store that
+                                            contains a private key and certificate pair. This
+                                            property is optional, and by default no client
+                                            certificate will be used for the SSL connection.</p>
+                                    </td></tr><tr><td><span class="property">mysql-ssl-client-password</span></td><td>
+                                        <p>The password to use to access the client
+                                            certificate store, if one is required. By default
+                                            no password will be used.</p>
+                                    </td></tr></tbody></table></div></dd><dt><span class="term"><code class="filename">postgresql/</code></span></dt><dd><p>Contains the PostgreSQL authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.3.0.jar</code>, along
+                        with a <code class="filename">schema/</code> directory containing PostgreSQL-specific
+                        SQL scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.3.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the PostgreSQL
+                        JDBC driver must be placed within
+                        <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The PostgreSQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain the JDBC driver
+                            <code class="filename">.jar</code> yourself from <a class="link" href="https://jdbc.postgresql.org/download.html#current" target="_top">PostgreSQL's website</a>. The proper <code class="filename">.jar</code> file
+                        depends on the version of Java you have installed. </p><p>The PostgreSQL extension implements several parameters specific to
+                        conifiguring SSL for secure connections to Postgres servers that support
+                        or require encrypted communications.  The parameters are as follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">postgresql-ssl-mode</span></td><td>
+                                        <p>This property sets the SSL mode that the JDBC
+                                            extension will attempt to use when communicating
+                                            with the remote Postgres server. The values for
+                                            this property match the standard values supported
+                                            by the Postgres JDBC driver:</p>
+                                        <div class="variablelist"><dl class="variablelist"><dt><span class="term">disable</span></dt><dd><p>Do not use SSL, and fail if the
+                                                        server requires it.</p></dd><dt><span class="term">allow</span></dt><dd><p>If the server requires encryption
+                                                        use it, otherwise prefer unencrypted
+                                                        connections.</p></dd><dt><span class="term">prefer</span></dt><dd><p>Try SSL connections, first, but
+                                                        allow unencrypted connections if
+                                                        the server does not support SSL or
+                                                        if SSL negotiations fail. This is
+                                                        the default.</p></dd><dt><span class="term">require</span></dt><dd><p>Require SSL connections, but
+                                                        implicitly trust all server
+                                                        certificates and authoritiers.</p></dd><dt><span class="term">verify-ca</span></dt><dd><p>Require SSL connections, and
+                                                        verify that the server certificate
+                                                        is issued by a known certificate
+                                                        authority.</p></dd><dt><span class="term">verify-full</span></dt><dd><p>Require SSL connections, 
+                                                        verifying that the server certificate
+                                                        is issued by a known authority, and
+                                                        that the name on the certificate
+                                                        matches the name of the server.</p></dd></dl></div>
+                                    </td></tr><tr><td><span class="property">postgresql-ssl-cert-file</span></td><td>
+                                        <p>The file containing the client certificate
+                                            to be used when making an SSL-encrtyped connection
+                                            to the Postgres server, in PEM format. This
+                                            property is optional, and will be ignored if the
+                                            SSL mode is set to disable.</p>
+                                    </td></tr><tr><td><span class="property">postgresql-ssl-key-file</span></td><td>
+                                        <p>The file containing the client private key
+                                            to be used when making an SSL-encrypted connection
+                                            to the Postgres server, in PEM format. This
+                                            property is optional, and will be ignore if the
+                                            SSL mode is set to disable.</p>
+                                    </td></tr><tr><td><span class="property">postgresql-ssl-root-cert-file</span></td><td>
+                                        <p>The file containing the root and intermedidate
+                                            certificates against which the server certificate
+                                            will be verified when making an SSL-encrypted
+                                            connection to the Postgres server. This file should
+                                            contain one or more PEM-formatted authority
+                                            certificates. This property is optional, and will
+                                            only be used if SSL mode is set to verify-ca or
+                                            verify-full.</p>
+                                        <p>If SSL is set to one of the verification modes
+                                            and this property is not specified, the JDBC driver
+                                            will attempt to use the
+                                            <code class="filename">.postgresql/root.crt</code> file
+                                            from the home directory of the user running the
+                                            web application server (e.g. Tomcat). If this
+                                            property is not specified and the default file
+                                            does not exist, the Postgres JDBC driver will
+                                            fail to connect to the server.</p>
+                                    </td></tr><tr><td><span class="property">postgresql-ssl-key-password</span></td><td>
+                                        <p>The password that will be used to access the
+                                            client private key file, if the client private
+                                            key is encrypted. This property is optional,
+                                            and is only used if the
+                                            <span class="property">postgresql-ssl-key-file</span>
+                                            property is set and SSL is enabled.</p>
+                                    </td></tr></tbody></table></div><p>The PostgreSQL extension also implements some parameters to
+                        configure timeouts at the database and network level.
+                        The parameters are as follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">postgresql-default-statement-timeout</span></td><td>
+                                        <p>The number of seconds the driver will wait for a
+                                        response from the database, before aborting the query.
+                                        A value of 0 (the default) means the timeout is disabled.</p>
+                                    </td></tr><tr><td><span class="property">postgresql-socket-timeout</span></td><td>
+                                        <p>The number of seconds to wait for socket read
+                                        operations. If reading from the server takes longer than
+                                        this value, the connection will be closed. This can be used
+                                        to handle network problems such as a dropped connection to
+                                        the database. Similar to
+                                        <span class="property">postgresql-default-statement-timeout</span>,
+                                        it will also abort queries that take too long. A value of 0
+                                        (the default) means the timeout is disabled.</p>
+                                    </td></tr></tbody></table></div></dd><dt><span class="term"><code class="filename">sqlserver/</code></span></dt><dd><p>Contains the SQL Server authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-sqlserver-1.3.0.jar</code>, along with
+                        a <code class="filename">schema/</code> directory contains SQL Server-specific
+                        scripts requires to set up the database. The JAR extension file will need to
+                        be placed within the <code class="filename">GUACAMOLE_HOME/extensions</code> folder,
+                        while the SQL Server JDBC driver must be placed within the
+                            <code class="filename">GUACAMOLE_HOME/lib</code> directory.</p><p><span class="emphasis"><em>The SQL Server JDBC driver is not included with the extension.</em></span>  You
+                        must obtain the JDBC driver <code class="filename">.jar</code> yourself and place it in the directory.
+                        Furthermore, the SQL Server authentication extension supports a number of TDS-compatible
+                        drivers, so you must make sure the one you choose is supported by the extension, that the
+                        extension is configured properly, and that the <code class="filename">.jar</code> is in the correct
+                        directory.  Microsoft's JDBC driver can be downloaded from Microsoft's <a class="link" href="https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries#anchor-20-drivers-relational-access" target="_top">
+                        SQL Connection Libraries</a> page.</p><p>In addition to the various parameters mentioned below, the SQL Server driver implements
+                        two parameters to control SQL Server-specific configuration items:
+                            <span class="property">sqlserver-driver</span> and <span class="property">sqlserver-instance</span>.</p><p>The <span class="property">sqlserver-instance</span> property controls the instance name that the
+                        SQL Server driver should attempt to connect to, if it is something other than the default
+                        SQL Server instance.  This instance name is configured during the SQL Server installation.
+                        This property is optional, and most installations should work without the need to specify
+                        an instance name.</p><p>The <span class="property">sqlserver-driver</span> allows you to choose the compatibility mode of
+                        of the module with various TDS-compatible drivers such that it can be used with different
+                        versions of SQL Server and even non-Microsoft SQL Server TDS-compatible databases.  The
+                        following options are available for the <span class="property">sqlserver-driver</span> property:
+                        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">microsoft2005</span></dt><dd><p>The current Microsoft driver, supporting SQL Server 2005 and later.</p></dd><dt><span class="term">microsoft</span></dt><dd><p>The legacy SQL Server support.</p></dd><dt><span class="term">jtds</span></dt><dd><p>The open source JTDS driver.</p></dd><dt><span class="term">datadirect</span></dt><dd><p>The Progress Sybase driver.</p></dd></dl></div><p>
+                    </p></dd></dl></div><p>Only one of the directories within the archive will be applicable to you, depending on
+            whether you are using MariaDB, MySQL, PostgreSQL, or SQL Server.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-database-creation"></a>Creating the Guacamole database</h2></div></div></div><p>The database authentication module will need a database to store authentication data
+            and a user to use only for data access and manipulation. You can use an existing
+            database and existing user, but for the sake of simplicity and security, these
+            instructions assume you will be creating a new database and new user that will be used
+            only by Guacamole and only for this authentication module.</p><p>You need MariaDB, MySQL, PostgreSQL, or SQL Server installed, and must have sufficient
+            access to create and administer databases. If this is not the case, install your database
+            of choice now. Most distributions will provide a convenient MySQL or PostgreSQL package
+            which will set up everything for you, including the root database user, if
+            applicable.  If you're using SQL Server, you need to install the packages on your platform
+            of choice, and also make sure that you obtain the proper licensing for the version
+            and edition of SQL Server you are running.</p><p>For the sake of clarity, these instructions will refer to the database as
+            "guacamole_db", but the database can be named whatever you like.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-mysql"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql  upgrade</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | mysql -u root -p <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-postgresql"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>createdb <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | psql -d <em class="replaceable"><code>guacamole_db</code></em> -f -</code></strong>
+<code class="computeroutput">CREATE TYPE
+CREATE TYPE
+CREATE TYPE
+CREATE TABLE
+CREATE INDEX</code>
+...
+<code class="computeroutput">INSERT 0 1
+INSERT 0 4
+INSERT 0 3</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-sqlserver"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/001-create-schema.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.
+Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/002-create-admin-user.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">
+(1 rows affected)
+
+(3 rows affected)
+                        
+(5 rows affected)</code>
+</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46227496716912"></a>Upgrading an existing Guacamole database</h2></div></div></div><p>If you are upgrading from an older version of Guacamole, you may need to run one or
+            more database schema upgrade scripts located within the
+                <code class="filename">schema/upgrade/</code> directory. Each of these scripts is named
+                    <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> where
+                <em class="replaceable"><code>VERSION</code></em> is the version of Guacamole where those changes
+            were introduced. They need to be run when you are upgrading from a version of Guacamole
+            older than <em class="replaceable"><code>VERSION</code></em>.</p><p>If there are no
+                <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> scripts
+            present in the <code class="filename">schema/upgrade/</code> directory which apply to your
+            existing Guacamole database, then the schema has not changed between your version and
+            the version your are installing, and there is no need to run any database upgrade
+            scripts.</p><p>These scripts are incremental and, when relevant, <span class="emphasis"><em>must be run in
+                order</em></span>. For example, if you are upgrading an existing database from
+            version 0.9.13-incubating to version 1.0.0, you would need to run the
+                <code class="filename">upgrade-pre-0.9.14.sql</code> script (because 0.9.13-incubating is
+            older than 0.9.14), followed by the <code class="filename">upgrade-pre-1.0.0.sql</code> script
+            (because 0.9.13-incubating is also older than 1.0.0).</p><div class="important"><h3 class="title"><a id="jdbc-auth-postgresql-upgrade"></a>Important</h3><p>Because the permissions granted to the Guacamole-specific PostgreSQL user when the
+                database was first created will not automatically be granted for any new tables and
+                sequences, you will also need to re-grant those permissions after applying any
+                upgrade relevant scripts:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46227495382432"></a>Granting Guacamole access to the database</h2></div></div></div><p>For Guacamole to be able to execute queries against the database, you must create a
+            new user for the database and grant that user sufficient privileges to manage the
+            contents of all tables in the database. The user created for Guacamole needs only
+                <code class="code">SELECT</code>, <code class="code">UPDATE</code>, <code class="code">INSERT</code>, and
+                <code class="code">DELETE</code> permissions on all Guacamole tables. Additionally, if using
+            PostgreSQL, the user will need <code class="code">SELECT</code> and <code class="code">USAGE</code> permission on
+            all sequences within all Guacamole tables. <span class="emphasis"><em>No other permissions should be
+                granted.</em></span></p><p>These instructions will refer to the user as "guacamole_user" but the user can be
+            named whatever you like. Naturally, you should also choose a real password for your user
+            rather than the string "some_password" used as a placeholder below.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227495377104"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mysql -u root -p
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Welcome to the MySQL monitor.  Commands end with ; or \g.
+Your MySQL connection id is 233
+Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)
+
+Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+</code>
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="computeroutput">Query OK, 1 row affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE USER '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost' IDENTIFIED BY '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON <em class="replaceable"><code>guacamole_db</code></em>.* TO '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>FLUSH PRIVILEGES;</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.02 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>quit</code></strong>
+<code class="computeroutput">Bye</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496315520"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">CREATE ROLE</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227495723200"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE LOGIN <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD = '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>USE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datawriter ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datareader ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">3&gt;</code> <strong class="userinput"><code>GO</code></strong></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-installation"></a>Installing database authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the database authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-jdbc-mysql-1.3.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-postgresql-1.3.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-sqlserver-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>, depending on whether you are
+                    using MySQL/MariaDB, PostgreSQL, or SQL Server.</p></li><li class="step"><p>Copy the JDBC driver for your database to
+                        <code class="filename">GUACAMOLE_HOME/lib</code>. Without a JDBC driver for your
+                    database, Guacamole will not be able to connect and authenticate users.</p></li><li class="step"><p>Configure Guacamole to use database authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the database authentication properly, Guacamole will not start up again
+                until the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-configuration"></a>Configuring Guacamole for database authentication</h3></div></div></div><p>Additional properties must be added to <code class="filename">guacamole.properties</code>
+                for Guacamole to properly connect to your database. These properties are specific to
+                the database being used, and must be set correctly for authentication to
+                work.</p><p>To use a MySQL database, you will need to specify the following:</p><div class="informalexample"><pre class="programlisting"># MySQL properties
+mysql-hostname: localhost
+mysql-port: 3306
+mysql-database: <em class="replaceable"><code>guacamole_db</code></em>
+mysql-username: <em class="replaceable"><code>guacamole_user</code></em>
+mysql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>For PostgreSQL, the properties are similar, but with different prefixes:</p><div class="informalexample"><pre class="programlisting"># PostgreSQL properties
+postgresql-hostname: localhost
+postgresql-port: 5432
+postgresql-database: <em class="replaceable"><code>guacamole_db</code></em>
+postgresql-username: <em class="replaceable"><code>guacamole_user</code></em>
+postgresql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>The SQL Server properties follow the same format:</p><div class="informalexample"><pre class="programlisting"># SQL Server properties
+sqlserver-hostname: localhost
+sqlserver-port: 1433
+sqlserver-database: <em class="replaceable"><code>guacamole_db</code></em>
+sqlserver-username: <em class="replaceable"><code>guacamole_user</code></em>
+sqlserver-password: <em class="replaceable"><code>some_password</code></em>
+sqlserver-driver: microsoft2005
+                </pre></div><p>The properties absolutely required by the database authentication extension are
+                relatively few and self-explanatory, describing only how the connection to the
+                database is to be established, and how Guacamole will authenticate when querying the
+                database:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /><col class="c4" /></colgroup><thead><tr><th>MySQL/MariaDB Property</th><th>PostgreSQL Property</th><th>SQL Server Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">mysql-hostname</span></td><td><span class="property">postgresql-hostname</span></td><td><span class="property">sqlserver-hostname</span></td><td>
+                                <p>The hostname or IP address of the server hosting your
+                                    database.</p>
+                            </td></tr><tr><td><span class="property">mysql-port</span></td><td><span class="property">postgresql-port</span></td><td><span class="property">sqlserver-port</span></td><td>
+                                <p>The port number of the database to connect to. For MySQL and
+                                    MariaDB, this will likely be 3306. For PostgreSQL, this will
+                                    likely be 5432.</p>
+                            </td></tr><tr><td><span class="property">mysql-database</span></td><td><span class="property">postgresql-database</span></td><td><span class="property">sqlserver-database</span></td><td>
+                                <p>The name of the database that you created for Guacamole. This
+                                    is given as "guacamole_db" in the examples given in this
+                                    chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-username</span></td><td><span class="property">postgresql-username</span></td><td><span class="property">sqlserver-username</span></td><td>
+                                <p>The username of the user that Guacamole should use to connect
+                                    to the database. This is given as "guacamole_user" in the
+                                    examples given in this chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-password</span></td><td><span class="property">postgresql-password</span></td><td><span class="property">sqlserver-password</span></td><td>
+                                <p>The password Guacamole should provide when authenticating with
+                                    the database. This is given as "some_password" in the examples
+                                    given in this chapter.</p>
+                            </td></tr></tbody></table></div><p>Be sure to specify the correct username and password for the database user you
+                created, and to specify the correct database. Authentication will not work if these
+                parameters are not correct.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227495433120"></a>Enforcing password policies</h4></div></div></div><p>Configuration options are available for enforcing rules intended to encourage
+                    password complexity and regular changing of passwords. None of these options are
+                    enabled by default, but can be selectively enabled through additional properties
+                    in <code class="filename">guacamole.properties</code>.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46227495431184"></a>Password complexity</h5></div></div></div><p>Administrators can require that passwords have a certain level of
+                        complexity, such as having both uppercase and lowercase letters ("multiple
+                        case"), at least one digit, or at least one symbol, and can prohibit
+                        passwords from containing the user's own username.</p><p>With respect to password content, the database authentication defines a
+                        "digit" as any numeric character and a "symbol" is any non-alphanumeric
+                        character. This takes non-English languages into account, thus a digit is
+                        not simply "0" through "9" but rather <a class="link" href="https://en.wikipedia.org/wiki/Numerals_in_Unicode" target="_top">any
+                            character defined in Unicode as numeric</a>, and a symbol is any
+                        character which Unicode does not define as alphabetic or numeric.</p><p>The check for whether a password contains the user's own username is
+                        performed in a case-insensitive manner. For example, if the user's username
+                        is "phil", the passwords "ch!0roPhil" and "PHIL-o-dendr0n" would still be
+                        prohibited.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+mysql-user-password-require-multiple-case: true
+mysql-user-password-require-symbol: true
+mysql-user-password-require-digit: true
+mysql-user-password-prohibit-username: true
+
+# PostgreSQL
+postgresql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+postgresql-user-password-require-multiple-case: true
+postgresql-user-password-require-symbol: true
+postgresql-user-password-require-digit: true
+postgresql-user-password-prohibit-username: true
+
+# SQL Server
+sqlserver-user-password-min-length: <em class="replaceable"><code>8</code></em>
+sqlserver-user-password-require-multiple-case: true
+sqlserver-user-password-require-symbol: true
+sqlserver-user-password-require-digit: true
+sqlserver-user-password-prohibit-username: true</pre></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46227495424224"></a>Password age / expiration</h5></div></div></div><p>"Password age" refers to two separate concepts:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Requiring users to change their password after a certain amount of
+                                time has elapsed since the last password change (maximum password
+                                age).</p></li><li class="listitem"><p>Preventing users from changing their password too frequently
+                                (minimum password age).</p></li></ol></div><p>While it may seem strange to prevent users from changing their password
+                        too frequently, it does make sense if you are concerned that rapid password
+                        changes may defeat password expiration (users could immediately change the
+                        password back) or tracking of password history (users could cycle through
+                        passwords until the history is exhausted and their old password is usable
+                        again).</p><p>By default, the database authentication does not apply any limits to
+                        password age, and users with permission to change their passwords may do so
+                        as frequently or infrequently as they wish. Password age limits can be
+                        enabled using a pair of properties, each accepting values given in units of
+                        days:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+mysql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# PostgreSQL
+postgresql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+postgresql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# SQL Server
+sqlserver-user-password-min-age: <em class="replaceable"><code>7</code></em>
+sqlserver-user-password-max-age: <em class="replaceable"><code>90</code></em></pre></div><div class="important"><h3 class="title">Important</h3><p>So that administrators can always intervene in the case that a
+                            password needs to be reset despite restrictions, the minimum age
+                            restriction does not apply to any user with permission to administer the
+                            system.</p></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46227496235632"></a>Preventing password reuse</h5></div></div></div><p>If desired, Guacamole can keep track of each user's most recently used
+                        passwords, and will prohibit reuse of those passwords until the password has
+                        been changed sufficiently many times. By default, Guacamole will not keep
+                        track of old passwords.</p><p>Note that these passwords are hashed in the same manner as each user's
+                        current password. When a user's password is changed, the hash, salt, etc.
+                        currently stored for that user is actually just copied verbatim (along with
+                        a timestamp) into a list of historical passwords, with older entries from
+                        this list being automatically deleted.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# PostgreSQL
+postgresql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# SQL Server
+sqlserver-user-password-history-size: <em class="replaceable"><code>6</code></em></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-concurrency"></a>Concurrent use of Guacamole connections</h4></div></div></div><p>The database authentication module provides configuration options to restrict
+                    concurrent use of connections or connection groups. These options are set
+                    through <code class="filename">guacamole.properties</code> and specify the default
+                    concurrency policies for connections and connection groups. The values set
+                    through the properties can be overridden later on a per-connection basis using
+                    the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections: 1
+mysql-default-max-group-connections: 1
+
+# PostgreSQL
+postgresql-default-max-connections: 1
+postgresql-default-max-group-connections: 1
+
+# SQL Server
+sqlserver-default-max-connections: 1
+sqlserver-default-max-group-connections: 1</pre></div><p>These properties are not required, but with the above properties in place,
+                    users attempting to use a connection or group that is already in use will be
+                    denied access. By default, concurrent access is allowed.</p><p>Concurrent access can also be restricted such that a particular user may only
+                    use a connection or group a certain number of times. By default, per-user
+                    concurrent use is limited for connection groups (to avoid allowing a single user
+                    to exhaust the contents of the group) but otherwise unrestricted. This default
+                    behavior can be modified through <code class="filename">guacamole.properties</code> or
+                    the per-connection settings exposed in the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections-per-user: 0
+mysql-default-max-group-connections-per-user: 0
+
+# PostgreSQL
+postgresql-default-max-connections-per-user: 0
+postgresql-default-max-group-connections-per-user: 0
+
+# SQL Server
+sqlserver-default-max-connections-per-user: 0
+sqlserver-default-max-group-connections-per-user: 0</pre></div><p>If you wish to impose an absolute limit on the number of connections that can
+                    be established through Guacamole, ignoring which users or connections are
+                    involved, this can be done as well. By default, Guacamole will impose no such
+                    limit:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-absolute-max-connections: 0
+
+# PostgreSQL
+postgresql-absolute-max-connections: 0
+
+# SQL Server
+sqlserver-absolute-max-connections: 0</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-restrict"></a>Restricting authentication to database users only</h3></div></div></div><p>By default, users will be allowed access to Guacamole as long as they are
+                authenticated by at least one extension. If database authentication is in use, and a
+                user is not associated with the database, then that user will be allowed access to
+                Guacamole if another extension grants this access, and will be provided with a view
+                of the data exposed by other extensions for that user account.</p><p>In some situations, such as when <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">combining LDAP
+                    with a database</a>, it would be preferable to let the database have the last
+                word regarding whether a user should be allowed into the system: restricting access
+                to only those users which exist in the database, and explicitly denying
+                authentication through all other means unless that user has been associated with the
+                database as well. This behavior can be forced by setting properties which declare
+                that database user accounts are required:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-required: true
+
+# PostgreSQL
+postgresql-user-required: true
+
+# SQL Server
+sqlserver-user-required: true</pre></div><p>With the above properties set, successful authentication attempts for users which
+                are not associated with the database will be vetoed by the database authentication.
+                Guacamole will report that the login is invalid, as if the user does not exist at
+                all.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-auto-create"></a>Auto-creating database users</h3></div></div></div><p>Guacamole supports the ability to layer authentication modules on top of one another
+                such that users successfully authenticated from one extension (e.g. LDAP) can be assigned
+                permissions to connections in another extension (e.g. JDBC).  Other extensions, like the
+                TOTP extension, rely on the database extension to be able to store information for
+                various user accounts.  In these situations it can be difficult to have to manually
+                create user accounts within the database extension.</p><p>The database extension provides a mechanism for enabling auto-creation of user
+                accounts that successfully authenticate from other extensions.  This functionality
+                is disabled by default, but can be enabled in each of the supported database
+                extensions by enabling the appropriate option in guacamole.properties.  The
+                resulting accounts will only have READ access to themselves until additional
+                permissions are granted, either explicitly by the administrator or by
+                permissions assigned to groups of which the user is a member.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-auto-create-accounts: true
+
+# PostgreSQL
+postgresql-auto-create-accounts: true
+
+# SQL Server
+sqlserver-auto-create-accounts: true</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496363296"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the database authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the database authentication
+                extension will prevent Guacamole from starting up, and any such errors will be
+                recorded in the logs of your servlet container.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-default-user"></a>Logging in</h2></div></div></div><a id="idm46227496355040" class="indexterm"></a><a id="idm46227496354144" class="indexterm"></a><p>The default Guacamole user created by the provided SQL scripts is
+                "<code class="systemitem">guacadmin</code>", with a default password of
+                "<code class="systemitem">guacadmin</code>". Once you have verified that the database
+            authentication is working, <span class="emphasis"><em>you should change your password
+                immediately</em></span>.</p><p>More detailed instructions for managing users and connections is given in <a class="xref" href="administration.html" title="Chapter 17. Administration">Chapter 17, <em>Administration</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-schema"></a>Modifying data manually</h2></div></div></div><a id="idm46227496348784" class="indexterm"></a><p>If necessary, it is possible to modify the data backing the authentication module
+            manually by executing SQL statements against the database. In general use, this will not
+            be common, but if you need to bulk-insert a large number of users or connections, or you
+            wish to translate an existing configuration automatically, you will need to know how
+            everything is laid out at a high level.</p><p>This section assumes knowledge of SQL and your chosen database, and that whatever you
+            need to do can be accomplished if only you had high-level information about Guacamole's
+            SQL schema.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-entities"></a>Entities</h3></div></div></div><a id="idm46227496681120" class="indexterm"></a><p>Every user and user group has a corresponding entry in the
+                    <code class="classname">guacamole_entity</code> table which serves as the basis for
+                assignment of a unique name, permissions, as well as relations which are common to
+                both users and groups like group membership. Each entity has a corresponding name
+                which is unique across all other entities of the same type.</p><p>If deleting a user or user group, the corresponding entity should also be deleted.
+                As any user or group which points to the entity will be deleted automatically when
+                the entity is deleted through cascading deletion, <span class="emphasis"><em>it is advisable to use
+                    the entity as the basis for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_entity</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The unique integer associated with each entity (user or user group).
+                            This value is generated automatically when a new entry is inserted into
+                            the <code class="classname">guacamole_entity</code> table and is distinct from
+                            the unique integer associated with the user entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users"><code class="classname">guacamole_user</code></a> or the user group
+                            entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-groups" title="User groups"><code class="classname">guacamole_user_group</code></a>.</p></dd><dt><span class="term"><span class="property">name</span></span></dt><dd><p>The unique name associated with each user or group. This value must be
+                            specified manually, and must be different from any existing user or
+                            group in the table. The name need only be unique relative to the names
+                            of other entities having the same type (a user may have the same name as
+                            a group).</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this entity. This can be either <span class="type">USER</span> or
+                                <span class="type">USER_GROUP</span>.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-users"></a>Users</h3></div></div></div><a id="idm46227496665360" class="indexterm"></a><p>Every user has a corresponding entry in the <code class="classname">guacamole_user</code>
+                and <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user has a
+                corresponding unique username, specified via
+                <code class="classname">guacamole_entity</code>, and salted password. The salted password is
+                split into two columns: one containing the salt, and the other containing the
+                password hashed with SHA-256.</p><p>If deleting a user, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding
+                    entity</a> should also be deleted. As any user which points to the entity
+                will be deleted automatically when the entity is deleted through cascading deletion,
+                    <span class="emphasis"><em>it is advisable to use the entity as the basis for any delete
+                    operation</em></span>.</p><p>The <code class="classname">guacamole_user</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The unique integer associated with each user. This value is generated
+                            automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this
+                            user.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The result of hashing the user's password concatenated with the
+                            contents of <span class="property">password_salt</span> using SHA-256. The salt
+                            is appended to the password prior to hashing.</p><p>Although passwords set through Guacamole will always be salted, it is
+                            possible to use unsalted password hashes when inserted manually or
+                            through an external system. If <span class="property">password_salt</span> is
+                                <code class="constant">NULL</code>, the <span class="property">password_hash</span>
+                            will be handled as a simple unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>A 32-byte random value. When a new user is created from the web
+                            interface, this value is randomly generated using a
+                            cryptographically-secure random number generator.</p><p>This will always be set for users whose passwords are set through
+                            Guacamole, but it is possible to use unsalted password hashes when
+                            inserted manually or through an external system. If
+                                <span class="property">password_salt</span> is <code class="constant">NULL</code>, the
+                                <span class="property">password_hash</span> will be handled as a simple
+                            unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was last changed. When a
+                            password is changed via the Guacamole interface, this value is updated.
+                            This, along with the contents of the
+                                <code class="classname">guacamole_user_password_history</code> table, is
+                            used to enforce password policies.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether login attempts as this user account should be rejected. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, login attempts by this user will be rejected
+                            as if the user did not exist. By default, user accounts are not
+                            disabled, and login attempts will succeed if the user provides the
+                            correct password.</p></dd><dt><span class="term"><span class="property">expired</span></span></dt><dd><p>If set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            requires that the user reset their password prior to fully logging in.
+                            The user will be presented with a password reset form, and will not be
+                            allowed to log into Guacamole until the password has been changed. By
+                            default, user accounts are not expired, and no password reset will be
+                            required upon login.</p></dd><dt><span class="term"><span class="property">access_window_start</span></span></dt><dd><p>The time of day (not date) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified time will be allowed, while attempts to log in before the
+                            specified time will be denied.</p></dd><dt><span class="term"><span class="property">access_window_end</span></span></dt><dd><p>The time of day (not date) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified time will be denied, while
+                            attempts to log in before the specified time will be allowed.</p></dd><dt><span class="term"><span class="property">valid_from</span></span></dt><dd><p>The date (not time of day) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified date will be allowed, while attempts to log in before the
+                            specified date will be denied.</p></dd><dt><span class="term"><span class="property">valid_until</span></span></dt><dd><p>The date (not time of day) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified date will be denied, while
+                            attempts to log in before the specified date will be allowed.</p></dd><dt><span class="term"><span class="property">timezone</span></span></dt><dd><p>The time zone to use when interpreting the
+                                <span class="property">access_window_start</span>,
+                                <span class="property">access_window_end</span>,
+                                <span class="property">valid_from</span>, and
+                                <span class="property">valid_until</span> values. This value may be any Java
+                                <code class="classname">TimeZone</code> ID, as defined by <a class="link" href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#getAvailableIDs()" target="_top"><code class="methodname">getAvailableIDs()</code></a>, though the
+                            Guacamole management interface will only present a subset of these time
+                            zones.</p></dd><dt><span class="term"><span class="property">full_name</span></span></dt><dd><p>The user's full name. Unlike the username, this name need not be
+                            unique; it is optional and is meant for display purposes only. Defining
+                            this value has no bearing on user identity, which is dictated purely by
+                            the username. User accounts with no associated full name should have
+                            this column set to <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">email_address</span></span></dt><dd><p>The user's email address, if any. This value is optional, need not be
+                            unique relative to other defined users, and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. If the user has no associated
+                            email address, this column should be set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organization</span></span></dt><dd><p>The name of the organization, company, etc. that the user is
+                            affiliated with. This value is optional and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. Users with no associated
+                            organization should have this column set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organizational_role</span></span></dt><dd><p>The role or title of the user at the organization described by the
+                                <span class="property">organization</span> column. This value is optional and
+                            is used for display purposes only. Defining this value has no bearing on
+                            user identity, which is dictated purely by the username. Users with no
+                            associated organization (or specific role/title at that organization)
+                            should have this column set to <code class="constant">NULL</code>.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>If you choose to manually set unsalted password hashes, please be sure you
+                    understand the security implications of doing so.</p><p>In the event that your database is compromised, finding the password for a
+                        <span class="emphasis"><em>salted</em></span> hash is computationally infeasible, but finding
+                    the password for an <span class="emphasis"><em>unsalted</em></span> hash is often not. In many
+                    cases, the password which corresponds to an unsalted hash can be found simply by
+                    entering the hash into a search engine like Google.</p></div><p>If creating a user manually, the main complication is the salt, which must be
+                determined before the <span class="command"><strong>INSERT</strong></span> statement can be constructed, but
+                this can be dealt with using variables. For MySQL:</p><div class="informalexample"><pre class="programlisting">-- Generate salt
+SET @salt = UNHEX(SHA2(UUID(), 256));
+
+-- Create base entity entry for user
+INSERT INTO guacamole_entity (name, type)
+VALUES ('<em class="replaceable"><code>myuser</code></em>', 'USER');
+
+-- Create user and hash password with salt
+INSERT INTO guacamole_user (
+    entity_id,
+    password_salt,
+    password_hash,
+    password_date
+)
+SELECT
+    entity_id,
+    @salt,
+    UNHEX(SHA2(CONCAT('<em class="replaceable"><code>mypassword</code></em>', HEX(@salt)), 256)),
+    CURRENT_TIMESTAMP
+FROM guacamole_entity
+WHERE
+    name = '<em class="replaceable"><code>myuser</code></em>'
+    AND type = 'USER';</pre></div><p>This sort of statement is useful for both creating new users or for changing
+                passwords, especially if all administrators have forgotten theirs.</p><p>If you are not using MySQL, or you are using a version of MySQL that lacks the
+                    <code class="methodname">SHA2</code> function, you will need to calculate the SHA-256
+                value manually (by using the <span class="command"><strong>sha256sum</strong></span> command, for
+                example).</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-password-history"></a>Password history</h4></div></div></div><a id="idm46227496441920" class="indexterm"></a><p>When a user's password is changed, a copy of the previous password's hash and
+                    salt is made within the <code class="classname">guacamole_user_password_history</code>.
+                    Each entry in this table is associated with the user whose password changed,
+                    along with the date that password first applied.</p><p>Old entries within this table are automatically deleted on a per-user basis
+                    depending on the requirements of the password policy. For example, if the
+                    password policy has been configured to require that users not reuse any of their
+                    previous six passwords, then there will be no more than six entries in this
+                    table for each user.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">password_history_id</span></span></dt><dd><p>The unique integer associated with each password history record.
+                                This value is generated automatically when a new entry is inserted
+                                into the <code class="classname">guacamole_user_password_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column from the
+                                entry in <code class="classname">guacamole_user</code> associated with the
+                                user who previously had this password.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The hashed password specified within the
+                                    <span class="property">password_hash</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>In most cases, this will be a salted hash, though it is possible
+                                to force the use of unsalted hashes when making changes to the
+                                database manually or through an external system.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>The salt value specified within the
+                                    <span class="property">password_salt</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>This will always be set for users whose passwords are set through
+                                Guacamole, but it is possible to use unsalted password hashes when
+                                inserted manually or through an external system, in which case this
+                                may be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was set. The time that the
+                                password ceased being used is recorded either by the password_date
+                                of the next related entry in
+                                    <code class="classname">guacamole_user_password_history</code> or
+                                    <span class="property">password_date</span> of
+                                    <code class="classname">guacamole_user</code> (if there is no such
+                                history entry).</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-login-history"></a>Login history</h4></div></div></div><a id="idm46227496883200" class="indexterm"></a><p>When a user logs in or out, a corresponding entry in the
+                        <code class="classname">guacamole_user_history</code> table is created or updated
+                    respectively. Each entry is associated with the user that logged in and the time
+                    their session began. If the user has logged out, the time their session ended is
+                    also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_user_history</code> table has the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_user_history</code> table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                that logged in. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they logged
+                                in. This username value is not guaranteed to uniquely identify a
+                                user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">remote_host</span></span></dt><dd><p>The hostname or IP address of the machine that the user logged in
+                                from, if known. If unknown, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the user logged in. Despite its name, this
+                                column also stores time information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the user logged out. If the user is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-groups"></a>User groups</h3></div></div></div><a id="idm46227495687840" class="indexterm"></a><p>Similar to <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users">users</a>, every user group
+                has a corresponding entry in the <code class="classname">guacamole_user_group</code> and
+                    <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user group has
+                a corresponding unique name specified via
+                <code class="classname">guacamole_entity</code>.</p><p>If deleting a user group, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding entity</a> should also be deleted. As any user group which
+                points to the entity will be deleted automatically when the entity is deleted
+                through cascading deletion, <span class="emphasis"><em>it is advisable to use the entity as the basis
+                    for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_user_group</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The unique integer associated with each user group. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user_group</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this user
+                            group.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether membership within this group should be taken into account when
+                            determining the permissions granted to a particular user. If this column
+                            is set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            membership in this group will have no effect on user permissions,
+                            whether those permissions are granted to this group directly or
+                            indirectly through the groups that this group is a member of. By
+                            default, user groups are not disabled, and permissions granted to a user
+                            through the group will be taken into account.</p></dd></dl></div><a id="idm46227495409600" class="indexterm"></a><p>Membership within a user group is dictated through entries in the
+                    <code class="classname">guacamole_user_group_member</code> table. As both users and user
+                groups may be members of groups, each entry associates the containing group with the
+                entity of the member.</p><p>The <code class="classname">guacamole_user_group_member</code> table contains the
+                following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The <span class="property">user_group_id</span> value of the user group having
+                            the specified member.</p></dd><dt><span class="term"><span class="property">member_entity_id</span></span></dt><dd><p>The <span class="property">entity_id</span> value of the user or user group
+                            that is a member of the specified group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connections"></a>Connections and parameters</h3></div></div></div><a id="idm46227495399744" class="indexterm"></a><a id="idm46227495398720" class="indexterm"></a><p>Each connection has an entry in the <code class="classname">guacamole_connection</code>
+                table, with a one-to-many relationship to parameters, stored as name/value pairs in
+                the <code class="classname">guacamole_connection_parameter</code> table.</p><p>The <code class="classname">guacamole_connection</code> table is simply a pairing of a
+                unique and descriptive name with the protocol to be used for the connection. It
+                contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The unique integer associated with each connection. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection</code> table.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The unique name associated with each connection. This value must be
+                            specified manually, and must be different from any existing connection
+                            name in the same connection group. References to connections in other
+                            tables use the value from <span class="property">connection_id</span>, not
+                                <span class="property">connection_name</span>.</p></dd><dt><span class="term"><span class="property">protocol</span></span></dt><dd><p>The protocol to use with this connection. This is the name of the
+                            protocol that should be sent to <span class="package">guacd</span> when
+                            connecting, for example "<code class="constant">vnc</code>" or
+                                "<code class="constant">rdp</code>".</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection, or <code class="constant">NULL</code> if this connection is
+                            within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>regardless of user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>from a single user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">proxy_hostname</span></span></dt><dd><p>The hostname or IP address of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-hostname</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_port</span></span></dt><dd><p>The TCP port number of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-port</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_encryption_method</span></span></dt><dd><p>The encryption method which should be used when communicating with the
+                            Guacamole proxy daemon (<span class="package">guacd</span>) for this connection.
+                            This can be either <code class="constant">NONE</code>, for no encryption, or
+                                <code class="constant">SSL</code>, for SSL/TLS. If <code class="constant">NULL</code>,
+                            the encryption method will be dictated by the
+                                <span class="property">guacd-ssl</span> property in
+                                <code class="filename">guacamole.properties</code>.</p></dd><dt><span class="term"><span class="property">connection_weight</span></span></dt><dd><p>The weight for a connection, used for applying weighted load balancing
+                        algorithms when connections are part of a BALANCING group.  This is an
+                        integer value, where values <code class="constant">1</code> or greater will weight 
+                        the connection relative to other connections in that group, and values 
+                        below <code class="constant">1</code> cause the connection to be disabled in the 
+                        group.  If <code class="constant">NULL</code>, the connection will be assigned a 
+                        default weight of <code class="constant">1</code>.</p></dd><dt><span class="term"><span class="property">failover_only</span></span></dt><dd><p>Whether this connection should be used for failover situations only,
+                            also known as a "hot spare". If this column is set to
+                                <code class="constant">TRUE</code> or <code class="constant">1</code>, this connection
+                            will be used only when another connection within the same
+                                <span class="type">BALANCING</span> connection group has failed due to an error
+                            within the remote desktop. </p><p><span class="emphasis"><em>Connection groups will always transparently switch to the
+                                next available connection in the event of remote desktop failure,
+                                regardless of the value of this column.</em></span> This column
+                            simply dictates whether a particular connection should be
+                                <span class="emphasis"><em>reserved</em></span> for such situations, and left unused
+                            otherwise.</p><p>This column only has an effect on connections within
+                                <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>As there are potentially multiple parameters per connection, where the names of
+                each parameter are completely arbitrary and determined only by the protocol in use,
+                every parameter for a given connection has an entry in table
+                    <code class="classname">guacamole_connection_parameter</code> table associated with its
+                corresponding connection. This table contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The <span class="property">connection_id</span> value from the connection this
+                            parameter is for.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol specified in the associated
+                            connection.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented for the connection to be successful.</p></dd></dl></div><p>Adding a connection and corresponding parameters is relatively easy compared to
+                adding a user as there is no salt to generate nor password to hash:</p><div class="informalexample"><pre class="programlisting">-- Create connection
+INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>vnc</code></em>');
+
+-- Determine the connection_id
+SELECT * FROM guacamole_connection WHERE connection_name = '<em class="replaceable"><code>test</code></em>' AND parent_id IS NULL;
+
+-- Add parameters to the new connection
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'hostname', '<em class="replaceable"><code>localhost</code></em>');
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'port', '<em class="replaceable"><code>5901</code></em>');</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-history"></a>Usage history</h4></div></div></div><a id="idm46227496657840" class="indexterm"></a><p>When a connection is initiated or terminated, a corresponding entry in the
+                        <code class="classname">guacamole_connection_history</code> table is created or
+                    updated respectively. Each entry is associated with the user using the
+                    connection, the connection itself, the  <a class="link" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles" title="Sharing profiles and parameters">sharing profile</a> in use
+                    (if the connection is being shared), and the time the connection started. If the
+                    connection has ended, the end time is also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_connection_history</code> table
+                    has the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_connection_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                using the connection. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they used
+                                the connection. This username value is not guaranteed to uniquely
+                                identify a user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> from the entry
+                                in <code class="classname">guacamole_connection</code> associated the
+                                connection being used. If the connection associated with the history
+                                record no longer exists, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The name associated with the connection at the time that it was
+                                used.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> from the
+                                entry in <code class="classname">guacamole_sharing_profile</code> associated
+                                the sharing profile being used to access the connection. If the
+                                connection is not being shared (no sharing profile is being used),
+                                or if the sharing profile associated with the history record no
+                                longer exists, this will be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The name associated with the sharing profile being used to access
+                                the connection at the time this history entry was recorded. If the
+                                connection is not being shared, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the connection was started by the user
+                                specified. Despite its name, this column also stores time
+                                information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the connection ended. If the connection is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-sharing-profiles"></a>Sharing profiles and parameters</h3></div></div></div><a id="idm46227496171328" class="indexterm"></a><a id="idm46227496170288" class="indexterm"></a><p>Each sharing profile has an entry in the
+                    <code class="classname">guacamole_sharing_profile</code> table, with a one-to-many
+                relationship to parameters, stored as name/value pairs in the
+                    <code class="classname">guacamole_sharing_profile_parameter</code> table.</p><p>The <code class="classname">guacamole_sharing_profile</code> table is simply a pairing of
+                a unique and descriptive name with the connection that can be shared using the
+                sharing profile, also known as the "primary connection". It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The unique integer associated with each sharing profile. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_sharing_profile</code> table.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The unique name associated with each sharing profile. This value must
+                            be specified manually, and must be different from any existing sharing
+                            profile name associated with the same primary connection. References to
+                            sharing profiles in other tables use the value from
+                                <span class="property">sharing_profile_id</span>, not
+                                <span class="property">sharing_profile_name</span>.</p></dd><dt><span class="term"><span class="property">primary_connection_id</span></span></dt><dd><p>The unique integer associated with the primary connection. The
+                            "primary connection" is the connection which can be shared using this
+                            sharing profile.</p></dd></dl></div><p>As there are potentially multiple parameters per sharing profile, where the names
+                of each parameter are completely arbitrary and determined only by the protocol
+                associated with the primary connection, every parameter for a given sharing profile
+                has an entry in the <code class="classname">guacamole_sharing_profile_parameter</code> table
+                associated with its corresponding sharing profile. This table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The <span class="property">sharing_profile_id</span> value from the entry in
+                            the <code class="classname">guacamole_sharing_profile</code> table for the
+                            sharing profile this parameter applies to.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol of the primary connection of the
+                            associated sharing profile.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connection-groups"></a>Connection groups</h3></div></div></div><a id="idm46227496147888" class="indexterm"></a><p>Each connection group has an entry in the
+                    <code class="classname">guacamole_connection_group</code> table, with a one-to-many
+                relationship to other groups and connections.</p><p>The <code class="classname">guacamole_connection_group</code> table is simply a pairing of
+                a unique and descriptive name with a group type, which can be either
+                    <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>. It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The unique integer associated with each connection group. This value
+                            is generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection_group</code> table.</p></dd><dt><span class="term"><span class="property">connection_group_name</span></span></dt><dd><p>The unique name associated with each connection group. This value must
+                            be specified manually, and must be different from any existing
+                            connection group name in the same connection group. References to
+                            connections in other tables use the value from
+                                <span class="property">connection_group_id</span>, not
+                                <span class="property">connection_group_name</span>.</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this connection group. This can be either
+                                <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>.</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection group, or <code class="constant">NULL</code> if this connection
+                            group is within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>regardless of
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>from a single
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">enable_session_affinity</span></span></dt><dd><p>Whether session affinity should apply to this connection group. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, users will be consistently routed to the
+                            same underlying connection until they log out. The normal balancing
+                            behavior will only apply for each user's first connection attempt during
+                            any one Guacamole session. By default, session affinity is not enabled,
+                            and connections will always be balanced across the entire connection
+                            group. This only has an effect on <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>Adding a connection group is even simpler than adding a new connection as there
+                are no associated parameters stored in a separate table:</p><div class="informalexample"><pre class="programlisting">-- Create connection group
+INSERT INTO guacamole_connection_group (connection_group_name, type)
+     VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>ORGANIZATIONAL</code></em>');</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-permissions"></a>Permissions</h3></div></div></div><p>There are several permissions tables in the schema which correspond to the types
+                of permissions in Guacamole's authentication model: system permissions, which
+                control operations that affect the system as a whole, and permissions which control
+                operations that affect specific objects within the system, such as users,
+                connections, or groups.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-system-permissions"></a>lSystem permissions</h4></div></div></div><a id="idm46227495872656" class="indexterm"></a><p>System permissions are defined by entries in the
+                        <code class="classname">guacamole_system_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific system
+                    operation.</p><p>The <code class="classname">guacamole_system_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of six
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to administer the entire system (essentially a wildcard
+                                permission), <code class="constant">CREATE_CONNECTION</code>, which grants
+                                the ability to create connections,
+                                    <code class="constant">CREATE_CONNECTION_GROUP</code>, which grants the
+                                ability to create connections groups,
+                                    <code class="constant">CREATE_SHARING_PROFILE</code>, which grants the
+                                ability to create sharing profiles,
+                                <code class="constant">CREATE_USER</code>, which grants the ability to create
+                                users, or <code class="constant">CREATE_USER_GROUP</code>, which grants the
+                                ability to create user groups.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-user-permissions"></a>User permissions</h4></div></div></div><a id="idm46227495589856" class="indexterm"></a><p>User permissions are defined by entries in the
+                        <code class="classname">guacamole_user_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific operation on
+                    an existing user.</p><p>The <code class="classname">guacamole_user_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column of the entry
+                                associated with the user <span class="emphasis"><em>affected</em></span> by this
+                                permission. This is the user that would be the object of the
+                                operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user, <code class="constant">UPDATE</code>, which grants
+                                the ability to update data associated with the user, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-group-permissions"></a>User group permissions</h4></div></div></div><a id="idm46227495575008" class="indexterm"></a><p>User group permissions are defined by entries in the
+                        <code class="classname">guacamole_user_group_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing user group.</p><p>The <code class="classname">guacamole_user_group_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_group_id</span></span></dt><dd><p>The value of the <span class="property">user_group_id</span> column of the
+                                entry associated with the user group <span class="emphasis"><em>affected</em></span>
+                                by this permission. This is the user group that would be the object
+                                of the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user group,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user group, <code class="constant">UPDATE</code>, which
+                                grants the ability to update data associated with the user group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-permissions"></a>Connection permissions</h4></div></div></div><a id="idm46227495763136" class="indexterm"></a><p>Connection permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection.</p><p>The <code class="classname">guacamole_connection_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> column of the
+                                entry associated with the connection affected by this permission.
+                                This is the connection that would be the object of the operation
+                                represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the connection (a prerequisite for connecting),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection, or <code class="constant">DELETE</code>,
+                                which grants the ability to delete the connection.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-sharing-profile-permissions"></a>Sharing profile permissions</h4></div></div></div><a id="idm46227495748720" class="indexterm"></a><p>Sharing profile permissions are defined by entries in the
+                        <code class="classname">guacamole_sharing_profile_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing sharing profile.</p><p>The <code class="classname">guacamole_sharing_profile_permission</code> table contains
+                    the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> column of
+                                the entry associated with the sharing profile affected by this
+                                permission. This is the sharing profile that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the sharing
+                                profile, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the sharing profile (a prerequisite for using
+                                the sharing profile to share an active connection),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the sharing profile, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the sharing profile.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-group-permissions"></a>Connection group permissions</h4></div></div></div><a id="idm46227495734064" class="indexterm"></a><p>Connection group permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_group_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection group.</p><p>The <code class="classname">guacamole_connection_group_permission</code> table
+                    contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The value of the <span class="property">connection_group_id</span> column
+                                of the entry associated with the connection group affected by this
+                                permission. This is the connection group that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection
+                                group, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the connection group,
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the connection group (and implicitly its contents).</p></dd></dl></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Configuring Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. LDAP authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/ldap-auth.html b/doc/1.3.0/gug/ldap-auth.html
new file mode 100644
index 0000000..a86a232
--- /dev/null
+++ b/doc/1.3.0/gug/ldap-auth.html
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. LDAP authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="jdbc-auth.html" title="Chapter 6. Database authentication" /><link rel="next" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. LDAP authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="ldap-auth"></a>Chapter 7. LDAP authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46227496950608">Applying the schema changes to OpenLDAP</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46227496989648">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46227497969312">Users</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46227497968000">Connections and parameters</a></span></dt></dl></dd></dl></div><a id="idm46227497978416" class="indexterm"></a><p>Guacamole supports LDAP authentication via an extension available from the main project
+        website. This extension allows users and connections to be stored directly within an LDAP
+        directory. If you have a centralized authentication system that uses LDAP, Guacamole's LDAP
+        support can be a good way to allow your users to use their existing usernames and passwords
+        to log into Guacamole.</p><p>To use the LDAP authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>An LDAP directory as storage for all authentication data, such as OpenLDAP.</p></li><li class="listitem"><p>The ability to modify the schema of your LDAP directory.</p></li></ol></div><p>The instructions here assume you already have an LDAP directory installed and working, and
+        do not cover the initial setup of such a directory.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-architecture"></a>How Guacamole uses LDAP</h2></div></div></div><p>If the LDAP extension is installed, Guacamole will authenticate users against your
+            LDAP server by attempting a bind as that user. The given username and password will be
+            submitted to the LDAP server during the bind attempt.</p><p>If the bind attempt is successful, the set of available Guacamole connections is
+            queried from the LDAP directory by executing an LDAP query as the bound user. Each
+            Guacamole connection is represented within the directory as a special type of group:
+                <code class="classname">guacConfigGroup</code>. Attributes associated with the group define
+            the protocol and parameters of the connection, and users are allowed access to the
+            connection only if they are associated with that group.</p><p>This architecture has a number of benefits:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Your users can use their existing usernames and passwords to log into
+                    Guacamole.</p></li><li class="listitem"><p>You can manage Guacamole connections using the same tool that you already use
+                    to manage your LDAP directory, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache Directory
+                        Studio</a>.</p></li><li class="listitem"><p>Existing security restrictions can limit visibility/accessibility of Guacamole
+                    connections.</p></li><li class="listitem"><p>Access to connections can easily be granted and revoked, as each connection is
+                    represented by a group.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Though Guacamole connections can be stored within the LDAP directory, this is not
+                required. Connection data can alternatively be stored within a database like MySQL
+                or PostgreSQL as long as the LDAP username matches the username of the database
+                user. Configuring Guacamole to use a database for authentication or connection
+                storage is covered in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a> and later in this chapter in <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-downloading"></a>Downloading the LDAP extension</h2></div></div></div><p>The LDAP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The LDAP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole-auth-ldap-1.3.0.jar</code></span></dt><dd><p>The Guacamole LDAP support extension itself, which must be placed in
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></dd><dt><span class="term"><code class="filename">schema/</code></span></dt><dd><p>LDAP schema files. An <code class="filename">.ldif</code> file compatible with
+                        OpenLDAP is provided, as well as a <code class="filename">.schema</code> file
+                        compliant with RFC-2252. The <code class="filename">.schema</code> file can be
+                        transformed into the <code class="filename">.ldif</code> file automatically.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-schema-changes"></a>Preparing your LDAP directory (optional)</h2></div></div></div><p>Although your LDAP directory already provides a means of storing and authenticating
+            users, Guacamole also needs storage of connection configuration data, such as hostnames
+            and ports, and a means of associating users with connections that they should have
+            access to. You can do this either through modifying the LDAP directory schema, or
+            through using a database like MySQL or PostgreSQL. If you do not wish to use the LDAP
+            directory for connection storage, skip ahead to <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p><p>If you wish to store connection data directly within the LDAP directory, the required
+            modifications to the LDAP schema are made through applying one of the provided schema
+            files. These schema files define an additional object class,
+                <code class="classname">guacConfigGroup</code>, which contains all configuration information
+            for a particular connection, and can be associated with arbitrarily-many users and
+            groups. Each connection defined by a <code class="classname">guacConfigGroup</code> will be
+            accessible only by users who are members of that group (specified with the
+                <span class="property">member</span> attribute), or who are members of associated groups
+            (specified with the <span class="property">seeAlso</span> attribute).</p><div class="important"><h3 class="title">Important</h3><p>The instructions given for applying the Guacamole LDAP schema changes are specific
+                to OpenLDAP, but other LDAP implementations, including Active Directory, will have
+                their own methods for updating the schema.</p><p>If you are not using OpenLDAP, a standards-compliant schema file is provided that
+                can be used to update the schema of any LDAP directory supporting RFC-2252. Please
+                consult the documentation of your LDAP directory to determine how such schema
+                changes can be applied.</p></div><p>The schema files are located within the <code class="filename">schema/</code> directory of the
+            archive containing the LDAP extension. You will only need one of these files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacConfigGroup.schema</code></span></dt><dd><p>A standards-compliant file describing the schema. This file can be used
+                        with any LDAP directory compliant with RFC-2252.</p></dd><dt><span class="term"><code class="filename">guacConfigGroup.ldif</code></span></dt><dd><p>An LDIF file compatible with OpenLDAP. This file was automatically built
+                        from the provided <code class="filename">.schema</code> file for convenience.</p></dd></dl></div><p>This chapter will cover applying <code class="filename">guacConfigGroup.ldif</code> to an
+            OpenLDAP server. If you are not using OpenLDAP, your LDAP server should provide
+            documentation for modifying its schema. If this is the case, please consult the
+            documentation of your LDAP server before proceeding.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496950608"></a>Applying the schema changes to OpenLDAP</h3></div></div></div><p>Schema changes to OpenLDAP are applied using the <span class="command"><strong>ldapadd</strong></span>
+                utility with the provided <code class="filename">guacConfigGroup.ldif</code> file:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapadd -Q -Y EXTERNAL -H ldapi:/// -f schema/guacConfigGroup.ldif</code></strong>
+<code class="computeroutput">adding new entry "cn=guacConfigGroup,cn=schema,cn=config"
+</code>
+<code class="prompt">#</code></pre></div><p>If the <code class="classname">guacConfigGroup</code> object was added successfully, you
+                should see output as above. You can confirm the presence of the new object class
+                using <span class="command"><strong>ldapsearch</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn</code></strong>
+<code class="computeroutput">dn: cn=schema,cn=config
+
+dn: cn={0}core,cn=schema,cn=config
+
+dn: cn={1}cosine,cn=schema,cn=config
+
+dn: cn={2}nis,cn=schema,cn=config
+
+dn: cn={3}inetorgperson,cn=schema,cn=config
+
+dn: cn={4}guacConfigGroup,cn=schema,cn=config
+</code>
+<code class="prompt">#</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-and-database"></a>Associating LDAP with a database</h2></div></div></div><p>If you install both the LDAP authentication as well as support for a database
+            (following the instructions in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>), Guacamole will
+            automatically attempt to authenticate against both systems whenever a user attempts to
+            log in. In addition to any visible objects within the LDAP directory, that user will
+            have access to any data associated with their account in the database, as well as any
+            data associated with user groups that they belong to. LDAP user accounts and groups will
+            be considered equivalent to database users and groups if their unique names are
+            identical, as determined by the attributes given for <a class="link" href="ldap-auth.html#guac-ldap-config" title="Configuring Guacamole for LDAP">the <span class="property">ldap-username-attribute</span> and
+                    <span class="property">ldap-group-name-attribute</span> properties</a>.</p><p>Data can be manually associated with LDAP user accounts or groups by creating
+            corresponding users or groups within the database which each have the same names. As
+            long as the names are identical, a successful login attempt against LDAP will be trusted
+            by the database authentication, and that user's associated data will be visible.</p><p>If an administrator account (such as the default <code class="systemitem">guacadmin</code>
+            user provided with the database authentication) has a corresponding user in the LDAP
+            directory with permission to read other LDAP users and groups, the Guacamole
+            administrative interface will include them in the lists presented to the administrator,
+            and will allow connections from the database to be associated with those users or groups
+            directly.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-ldap-auth"></a>Installing LDAP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the LDAP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-ldap-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use LDAP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the LDAP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-ldap-config"></a>Configuring Guacamole for LDAP</h3></div></div></div><a id="idm46227496921840" class="indexterm"></a><a id="idm46227495860464" class="indexterm"></a><p>Additional properties may be added to <code class="filename">guacamole.properties</code> to
+                describe how your LDAP directory is organized and how Guacamole should connect (and
+                bind) to your LDAP server. Among these properties, only the
+                    <span class="property">ldap-user-base-dn</span> property is required:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">ldap-hostname</span></span></dt><dd><p>The hostname of your LDAP server. If omitted, "localhost" will be used
+                            by default. You will need to use a different value if your LDAP server
+                            is located elsewhere.</p></dd><dt><span class="term"><span class="property">ldap-port</span></span></dt><dd><p>The port your LDAP server listens on. If omitted, the standard LDAP or
+                            LDAPS port will be used, depending on the encryption method specified
+                            with <span class="property">ldap-encryption-method</span> (if any). Unencrypted
+                            LDAP uses the standard port of 389, while LDAPS uses port 636. Unless
+                            you manually configured your LDAP server to do otherwise, your LDAP
+                            server probably listens on port 389.</p></dd><dt><span class="term"><span class="property">ldap-encryption-method</span></span></dt><dd><p>The encryption mechanism that Guacamole should use when communicating
+                            with your LDAP server. Legal values are "none" for unencrypted LDAP,
+                            "ssl" for LDAP over SSL/TLS (commonly known as LDAPS), or "starttls" for
+                            STARTTLS. If omitted, encryption will not be used.</p><p>If you do use encryption when connecting to your LDAP server, you will
+                            need to ensure that its certificate chain can be verified using the
+                            certificates in Java's trust store, often referred to as
+                                <code class="filename">cacerts</code>. If this is not the case, you will need
+                            to use Java's <span class="command"><strong>keytool</strong></span> utility to either add the
+                            necessary certificates or to create a new trust store containing those
+                            certificates.</p><p>If you will be using your own trust store and not the default
+                                <code class="filename">cacerts</code>, you will need to specify the full path
+                            to that trust store using the system property
+                                <span class="property">javax.net.ssl.trustStore</span>. Note that this is a
+                            system property and <span class="emphasis"><em>not</em></span> a Guacamole property; it
+                            must be specified when starting the JVM using the <code class="option">-D</code>
+                            option. Your servlet container will provide some means of specifying
+                            startup options for the JVM.</p></dd><dt><span class="term"><span class="property">ldap-max-search-results</span></span></dt><dd><p>The maximum number of search results that can be returned by a single
+                            LDAP query. LDAP queries which exceed this maximum will fail.
+                                <span class="emphasis"><em>This property is optional.</em></span> If omitted, each
+                            LDAP query will be limited to a maximum of 1000 results.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-dn</span></span></dt><dd><p>The DN (Distinguished Name) of the user to bind as when authenticating
+                            users that are attempting to log in. If specified, Guacamole will query
+                            the LDAP directory to determine the DN of each user that logs in. If
+                            omitted, each user's DN will be derived directly using the base DN
+                            specified with <span class="property">ldap-user-base-dn</span>.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-password</span></span></dt><dd><p>The password to provide to the LDAP server when binding as
+                                <span class="property">ldap-search-bind-dn</span> to authenticate other
+                            users. This property is only used if
+                                <span class="property">ldap-search-bind-dn</span> is specified. If omitted,
+                            but <span class="property">ldap-search-bind-dn</span> is specified, Guacamole
+                            will attempt to bind with the LDAP server without a password.</p></dd><dt><span class="term"><span class="property">ldap-user-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole users. <span class="emphasis"><em>This property is
+                                absolutely required in all cases.</em></span> All Guacamole users
+                            must be descendents of this base DN.</p><p>If a search DN is provided (via
+                                <span class="property">ldap-search-bind-dn</span>), then Guacamole users need
+                            only be somewhere within the subtree of the specified user base
+                            DN.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then all
+                            Guacamole users must be <span class="emphasis"><em>direct descendents</em></span> of this
+                            base DN, as the base DN will be appended to the username to derive the
+                            user's DN. For example, if <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-username-attribute</span></span></dt><dd><p>The attribute or attributes which contain the username within all
+                            Guacamole user objects in the LDAP directory. Usually, and by default,
+                            this will simply be "<span class="property">uid</span>". If your LDAP directory
+                            contains users whose usernames are dictated by different attributes,
+                            multiple attributes can be specified here, separated by commas, but
+                            beware: <span class="emphasis"><em>doing so requires that a search DN be provided with
+                                    <span class="property">ldap-search-bind-dn</span></em></span>.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then the single
+                            username attribute specified here will be used together with the user
+                            base DN to directly derive the full DN of each user. For example, if
+                                <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-member-attribute</span></span></dt><dd><p>The attribute which contains the members within all group objects in the
+                          LDAP directory. Usually, and by default, this will simply be
+                          "<span class="property">member</span>". If your LDAP directory contains groups
+                          whose members are dictated by a different attribute, it can be specified
+                          here.</p></dd><dt><span class="term"><span class="property">ldap-member-attribute-type</span></span></dt><dd><p>Specify whether the attribute defined in
+                            "<span class="property">ldap-member-attribute</span>"  (Usually
+                            "<span class="property">member</span>") identifies a group member by DN or by
+                            usercode. Possible values: "<span class="property">dn</span>" (the default, if
+                            not specified) or "<span class="property">uid</span>".</p><p>Example: an LDAP server may present groups using the
+                            <code class="classname">groupOfNames</code> scheme
+                            </p><div class="informalexample"><pre class="programlisting">dn: cn=group1,ou=Groups,dc=example,dc=net
+objectClass: groupOfNames
+cn: group1
+gidNumber: 12345
+member: user1,ou=People,dc=example,dc=net
+member: user2,ou=People,dc=example,dc=net</pre></div><p>
+                            <span class="property">ldap-member-attribute</span> is
+                            <code class="systemitem">member</code> and
+                            <span class="property">ldap-member-attribute-type</span> is
+                            <code class="systemitem">dn</code></p><p>Example: an LDAP server may present groups using the
+                            <code class="classname">posixGroup</code> scheme
+                            </p><div class="informalexample"><pre class="programlisting">dn: cn=group1,ou=Groups,dc=example,dc=net
+objectClass: posixGroup
+cn: group1
+gidNumber: 12345
+memberUid: user1
+memberUid: user2</pre></div><p>
+                            <span class="property">ldap-member-attribute</span> is
+                            <code class="systemitem">memberUid</code> and
+                            <span class="property">ldap-member-attribute-type</span> is
+                            <code class="systemitem">uid</code></p></dd><dt><span class="term"><span class="property">ldap-user-attributes</span></span></dt><dd><p>The attribute or attributes to retrieve from the LDAP directory for
+                            the currently logged-in user, separated by commas. If specified, the
+                            attributes listed here are retrieved from each authenticated user and
+                            dynamically applied to the parameters of that user's connections as
+                                <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> with the
+                            prefix "<code class="varname">LDAP_</code>".</p><p>When a user authenticates with LDAP and accesses a particular
+                            Guacamole connection, the values of these tokens will be the values of
+                            their corresponding attributes at the time of authentication. If the
+                            attribute has no value for the current user, then the corresponding
+                            token is not applied. If the attribute has multiple values, then the
+                            first value of the attribute is used.</p><p>When converting an LDAP attribute name into a parameter token name,
+                            the name of the attribute is transformed into uppercase with each word
+                            separated by underscores, a naming convention referred to as "uppercase
+                            with underscores" or "<a class="link" href="https://en.wikipedia.org/wiki/Naming_convention_(programming)#Multiple-word_identifiers" target="_top">screaming snake case</a>". For example:</p><div class="table"><a id="idm46227496608288"></a><p class="title"><strong>Table 7.1. Example LDAP attribute / parameter token conversions</strong></p><div class="table-contents"><table class="table" summary="Example LDAP attribute / parameter token conversions" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>LDAP Attribute</th><th>Parameter Token</th></tr></thead><tbody><tr><td><code class="varname">lowercase-with-dashes</code></td><td><code class="varname">${LDAP_LOWERCASE_WITH_DASHES}</code></td></tr><tr><td><code class="varname">CamelCase</code></td><td><code class="varname">${LDAP_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">headlessCamelCase</code></td><td><code class="varname">${LDAP_HEADLESS_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">lettersAndNumbers1234</code></td><td><code class="varname">${LDAP_LETTERS_AND_NUMBERS_1234}</code></td></tr><tr><td><code class="varname">aRANDOM_mixOf-3NAMINGConventions</code></td><td><code class="varname">${LDAP_A_RANDOM_MIX_OF_3_NAMING_CONVENTIONS}</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Usage of parameter tokens is discussed in more detail in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> in <a class="xref" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">the section called “Parameter tokens”</a>.</p></dd><dt><span class="term"><span class="property">ldap-user-search-filter</span></span></dt><dd><p>The search filter used to query the LDAP tree for users that can log
+                            into and be granted privileges in Guacamole. <span class="emphasis"><em>If this property
+                                is omitted the default of "(objectClass=*)" will be used.
+                            </em></span></p></dd><dt><span class="term"><span class="property">ldap-config-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole configurations. <span class="emphasis"><em>This
+                                property is optional.</em></span> If omitted, the configurations of
+                            Guacamole connections will simply not be queried from the LDAP
+                            directory. If specified, this base DN will be used when querying the
+                            configurations accessible by a user once they have successfully logged
+                            in.</p><p>Each configuration is analogous to a connection. Within Guacamole's
+                            LDAP support, each configuration functions as a group, having user
+                            members (via the <span class="property">member</span> attribute) and optionally
+                            group members (via the <span class="property">seeAlso</span> attribute), where
+                            each member of a particular configuration group will have access to the
+                            connection defined by that configuration.</p></dd><dt><span class="term"><span class="property">ldap-group-base-dn</span></span></dt><dd><p>The base of the DN for all user groups that may be used by other
+                            extensions to define permissions or that may referenced within Guacamole
+                            configurations using the standard <span class="property">seeAlso</span>
+                            attribute. All groups which will be used to control access to Guacamole
+                            configurations must be descendents of this base DN. <span class="emphasis"><em>If this
+                                property is omitted, the <span class="property">seeAlso</span> attribute will
+                                have no effect on Guacamole configurations.</em></span></p></dd><dt><span class="term"><span class="property">ldap-group-name-attribute</span></span></dt><dd><p>The attribute or attributes which define the unique name of user
+                            groups in the LDAP directory. Usually, and by default, this will simply
+                            be "<span class="property">cn</span>". If your LDAP directory contains groups
+                            whose names are dictated by different attributes, multiple attributes
+                            can be specified here, separated by commas.</p></dd><dt><span class="term"><span class="property">ldap-dereference-aliases</span></span></dt><dd><p>Controls whether or not the LDAP connection follows (dereferences)
+                            aliases as it searches the tree. Possible values for this property are
+                            "never" (the default) so that aliases will never be followed,
+                            "searching" to dereference during search operations after the base
+                            object is located, "finding" to dereference in order to locate the
+                            search base, but not during the actual search, and "always" to always
+                            dereference aliases.</p></dd><dt><span class="term"><span class="property">ldap-follow-referrals</span></span></dt><dd><p>This option controls whether or not the LDAP module follow referrals
+                            when processing search results from a LDAP search. Referrals can be
+                            pointers to other parts of an LDAP tree, or to a different
+                            server/connection altogether. This is a boolean parameter, with valid
+                            options of "true" or "false." The default is false. When disabled, LDAP
+                            referrals will be ignored when encounterd by the Guacamole LDAP client
+                            and the client will move on to the next result. When enabled, the LDAP
+                            client will follow the referral and process results within the referral,
+                            subject to the maximum hops parameter below.</p></dd><dt><span class="term"><span class="property">ldap-max-referral-hops</span></span></dt><dd><p>This option controls the maximum number of referrals that will be
+                            processed before the LDAP client refuses to follow any more referrals.
+                            The default is 5. If the ldap-follow-referrals property is set to false
+                            (the default), this option has no effect. If the ldap-follow-referrals
+                            option is set to true, this will limit the depth of referrals followed
+                            to the number specified.</p></dd><dt><span class="term"><span class="property">ldap-operation-timeout</span></span></dt><dd><p>This option sets the timeout, in seconds, of any single LDAP
+                            operation. The default is 30 seconds. When this timeout is reached LDAP
+                            operations will be aborted.</p></dd></dl></div><p>Again, even if the defaults are sufficient for the other properties, <span class="emphasis"><em>you
+                    must still specify the <span class="property">ldap-user-base-dn</span>
+                    property</em></span>. An absolutely minimal configuration for LDAP authentication
+                will look like the following:</p><pre class="programlisting"># LDAP properties
+ldap-user-base-dn:       <em class="replaceable"><code>ou=people,dc=example,dc=net</code></em></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227496989648"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the LDAP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the LDAP extension will prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container. If properly configured, you will be able to log in as any user
+                within the defined <span class="property">ldap-user-base-dn</span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-auth-schema"></a>The LDAP schema</h2></div></div></div><a id="idm46227496765728" class="indexterm"></a><p>Guacamole's LDAP support allows users and connections to be managed purely within an
+            LDAP directory defined in <code class="filename">guacamole.properties</code>. This is
+            accomplished with a minimum of changes to the standard LDAP schema - all Guacamole users
+            are traditional LDAP users and share the same mechanism of authentication. The only new
+            type of object required is a representation for Guacamole connections,
+                <code class="classname">guacConfigGroup</code>, which was added to your server's schema
+            during the install process above.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227497969312"></a>Users</h3></div></div></div><p>All Guacamole users, as far as the LDAP support is concerned, are LDAP users with
+                standard LDAP credentials. When a user signs in to Guacamole, their username and
+                password will be used to bind to the LDAP server. If this bind operation is
+                successful, the available connections are queried from the directory and the user is
+                allowed in.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227497968000"></a>Connections and parameters</h3></div></div></div><p>Each connection is represented by an instance of the
+                    <code class="classname">guacConfigGroup</code> object class, an extended version of the
+                standard LDAP <code class="classname">groupOfNames</code>, which provides a protocol and set
+                of parameters. Only members of the <code class="classname">guacConfigGroup</code> will have
+                access to the corresponding connection.</p><p>The <code class="classname">guacConfigGroup</code> object class provides two new
+                attributes in addition to those provided by
+                <code class="classname">groupOfNames</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">guacConfigProtocol</span></span></dt><dd><p>The protocol associated with the connection, such as
+                                "<code class="constant">vnc</code>" or "<code class="constant">rdp</code>". This
+                            attribute is required for every <code class="classname">guacConfigGroup</code>
+                            and can be given only once.</p></dd><dt><span class="term"><span class="property">guacConfigParameter</span></span></dt><dd><p>The name and value of a parameter for the specified protocol. This is
+                            given as
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>,
+                            where "name" is the name of the parameter, as defined by the
+                            documentation for the protocol specified, and "value" is any allowed
+                            value for that parameter.</p><p>This attribute can be given multiple times for the same
+                            connection.</p></dd></dl></div><p>For example, to create a new VNC connection which connects to "localhost" at port
+                5900, while granting access to <code class="systemitem">user1</code> and
+                    <code class="systemitem">user2</code>, you could create an <code class="filename">.ldif</code>
+                file like the following:</p><div class="informalexample"><pre class="programlisting">dn: cn=Example Connection,ou=groups,dc=example,dc=net
+objectClass: guacConfigGroup
+objectClass: groupOfNames
+cn: Example Connection
+guacConfigProtocol: vnc
+guacConfigParameter: hostname=localhost
+guacConfigParameter: port=5900
+guacConfigParameter: password=secret
+member: cn=user1,ou=people,dc=example,dc=net
+member: cn=user2,ou=people,dc=example,dc=net</pre></div><p>The new connection can then be created using the <span class="command"><strong>ldapadd</strong></span>
+                utility:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ldapadd -x -D <em class="replaceable"><code>cn=admin,dc=example,dc=net</code></em> -W -f <em class="replaceable"><code>example-connection.ldif</code></em></code></strong>
+<code class="computeroutput">Enter LDAP Password:
+adding new entry "cn=Example Connection,ou=groups,dc=example,dc=net"
+</code>
+<code class="prompt">$</code></pre></div><p>Where <code class="systemitem">cn=admin,dc=example,dc=net</code> is an administrator
+                account with permission to create new entries, and
+                    <code class="filename">example-connection.ldif</code> is the name of the
+                    <code class="filename">.ldif</code> file you just created.</p><p>There is, of course, no need to use only the standard LDAP utilities to create
+                connections and users. There are useful graphical environments for manipulating LDAP
+                directories, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache
+                    Directory Studio</a>, which make many of the tasks given above much
+                easier.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Database authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 8. Duo two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/libguac.html b/doc/1.3.0/gug/libguac.html
new file mode 100644
index 0000000..d647ab9
--- /dev/null
+++ b/doc/1.3.0/gug/libguac.html
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. libguac</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-protocol.html" title="Chapter 19. The Guacamole protocol" /><link rel="next" href="guacamole-common.html" title="Chapter 21. guacamole-common" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. libguac</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="libguac"></a>Chapter 20. libguac</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-lifecycle-entry">Entry point</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-users">Joining/leaving a connection</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-termination">Termination</a></span></dt></dl></dd><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-key-events">Key events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-mouse-events">Mouse events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-clipboard-events">Clipboard, file, and other stream events</a></span></dt></dl></dd></dl></div><a id="idm46227493137824" class="indexterm"></a><a id="idm46227493136480" class="indexterm"></a><p>The C API for extending and developing with Guacamole is libguac. All
+        native components produced by the Guacamole project link with this
+        library, and this library provides the common basis for extending the
+        native functionality of those native components (by implementing client
+        plugins).</p><p>libguac is used mainly for developing client plugins like
+        libguac-client-vnc or libguac-client-rdp, or for developing a proxy
+        supporting the Guacamole protocol like guacd. This chapter is intended
+        to give an overview of how libguac is used, and how to use it for
+        general communication with the Guacamole protocol.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-error-handling"></a>Error handling</h2></div></div></div><p>Most functions within libguac handle errors by returning a zero or
+            non-zero value, whichever is appropriate for the function at hand.
+            If an error is encountered, the <code class="varname">guac_error</code>
+            variable is set appropriately, and
+                <code class="varname">guac_error_message</code> contains a
+            statically-allocated human-readable string describing the context of
+            the error. These variables intentionally mimic the functionality
+            provided by <code class="varname">errno</code> and
+                <code class="filename">errno.h</code>.</p><p>Both <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> are defined within
+                <code class="filename">error.h</code>. A human-readable string describing
+            the error indicated by <code class="varname">guac_error</code> can be
+            retrieved using <code class="methodname">guac_status_string()</code>, which
+            is also statically allocated.</p><p>If functions defined within client plugins set
+                <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> appropriately when errors
+            are encountered, the messages logged to syslog by guacd will be more
+            meaningful for both users and developers.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-plugins"></a>Client plugins</h2></div></div></div><p>Client plugins are libraries which follow specific conventions such that they can be
+            loaded dynamically by guacd. All client plugins <span class="emphasis"><em>must</em></span>:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Follow a naming convention, where the name of the library is
+                            <span class="package">libguac-client-<em class="replaceable"><code>PROTOCOL</code></em></span>.
+                        <span class="emphasis"><em>This is necessary for guacd to locate the library for a requested
+                        protocol.</em></span></p></li><li class="listitem"><p>Be linked against libguac, the library used by guacd to handle the Guacamole
+                    protocol. The structures which are given to functions invoked by guacd are
+                    defined by libguac, and are expected to be manipulated via the functions
+                    provided by libguac or as otherwise documented within the structure itself.
+                        <span class="emphasis"><em>Communication between guacd and client plugins is only possible if
+                        they share the same core structural and functional definitions provided by
+                        libguac.</em></span></p></li><li class="listitem"><p>Implement the standard entry point for client plugins,
+                        <code class="methodname">guac_client_init()</code>, described in more detail below.
+                    It is this function which initializes the structures provided by guacd such that
+                    users can join and interact with the connection.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-entry"></a>Entry point</h3></div></div></div><p>All client plugins must provide a function named
+                    <code class="methodname">guac_client_init</code> which accepts, as its sole argument, a
+                pointer to a <code class="classname">guac_client</code> structure. This function is similar
+                in principle to the <code class="methodname">main()</code> function of a C program, and it
+                is the responsibility of this function to initialize the provided structure as
+                necessary to begin the actual remote desktop connection, allow users to join/leave,
+                etc.</p><p>The provided <code class="classname">guac_client</code> will already have been initialized
+                with handlers for logging, the broadcast socket, etc. The absolutely critical pieces
+                which must be provided by <code class="methodname">guac_client_init</code> are:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A handler for users which join the connection
+                            (<span class="property">join_handler</span>). The join handler is also usually
+                        the most appropriate place for the actual remote desktop connection to be
+                        established.</p></li><li class="listitem"><p>A <code class="constant">NULL</code>-terminated set of argument names which the
+                        client plugin accepts, assigned to the <span class="property">args</span> property of
+                        the given <code class="classname">guac_client</code>. As the handshake procedure is
+                        completed for each connecting user, these argument names will be presented
+                        as part of the handshake, and the values for those arguments will be passed
+                        to the join handler once the handshake completes.</p></li><li class="listitem"><p>A handler for users leaving the connection
+                            (<span class="property">leave_handler</span>), if any cleanup, updates, etc. are
+                        required.</p></li><li class="listitem"><p>A handler for freeing the data associated with the
+                            <code class="classname">guac_client</code> after the connection has terminated
+                            (<span class="property">free_handler</span>). If your plugin will allocate any
+                        data at all, implementing the free handler is necessary to avoid memory
+                        leaks.</p></li></ol></div><p>If <code class="methodname">guac_client_init</code> returns successfully, guacd will
+                proceed with allowing the first use to join the connection, and the rest of the
+                plugin lifecycle commences.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-users"></a>Joining/leaving a connection</h3></div></div></div><p>Whenever a user joins a connection, including the very first user of a connection
+                (the user which is establishing the remote desktop connection in the first place),
+                the join handler of the <span class="property">guac_client</span> will be invoked. This
+                handler is provided with the <code class="classname">guac_user</code> structure representing
+                the user that just joined, along with the arguments provided during the handshake
+                procedure:</p><div class="informalexample"><pre class="programlisting">int join_handler(guac_user* user, int argc, char** argv) {
+    /* Synchronize display state, init the user, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;join_handler = join_handler;</pre></div><p>As the parameters and user information provided during the Guacamole protocol
+                handshake are often required to be known before the remote desktop connection can be
+                established, the join handler is usually the best place to create a thread which
+                establishes the remote desktop connection and updates the display
+                accordingly.</p><p>If necessary, the user which first established the connection can be distinguished
+                from all other users by the <span class="property">owner</span> flag of
+                    <code class="classname">guac_user</code>, which will be set to a non-zero value.</p><p>Once a user has disconnected, the leave handler of
+                    <code class="classname">guac_client</code> will be invoked. Just as with the join
+                handler, this handler is provided the <code class="classname">guac_user</code> structure of
+                the user that disconnected. The <code class="classname">guac_user</code> structure will be
+                freed immediately after the handler completes:</p><div class="informalexample"><pre class="programlisting">int leave_handler(guac_user* user) {
+    /* Free user-specific data and clean up */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;leave_handler = leave_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-termination"></a>Termination</h3></div></div></div><p>Once the last user of a connection has left, guacd will begin freeing resources
+                allocated to that connection, invoking the free handler of the
+                    <code class="classname">guac_client</code>. At this point, the "leave" handler has been
+                invoked for all previous users. All that remains is for the client plugin to free
+                any remaining data that it allocated, such that guacd can clean up the rest:</p><div class="informalexample"><pre class="programlisting">int free_handler(guac_client* client) {
+    /* Disconnect, free client-specific data, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;free_handler = free_handler;</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-layers"></a>Layers and buffers</h2></div></div></div><p>The main operand of all drawing instructions is the layer,
+            represented within libguac by the <code class="classname">guac_layer</code>
+            structure. Each <code class="classname">guac_layer</code> is normally
+            allocated using <code class="methodname">guac_client_alloc_layer()</code>
+            or <code class="methodname">guac_client_alloc_buffer()</code>, depending on
+            whether a layer or buffer is desired, and freed with
+                <code class="methodname">guac_client_free_layer()</code> or
+                <code class="methodname">guac_client_free_buffer()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Care must be taken to invoke the allocate and free pairs of
+                each type of layer correctly.
+                    <code class="methodname">guac_client_free_layer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_layer()</code>, and
+                    <code class="methodname">guac_client_free_buffer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_buffer()</code>, all
+                called using the same instance of
+                    <code class="classname">guac_client</code>.</p><p>If these restrictions are not observed, the effect of invoking
+                these functions is undefined.</p></div><p>Using these layer management functions allows you to reuse
+            existing layers or buffers after their original purpose has expired,
+            thus conserving resources on the client side, as allocation of new
+            layers within the remote client is a relatively expensive
+            operation.</p><p>It is through layers and buffers that Guacamole provides support
+            for hardware-accelerated compositing and cached updates. Creative
+            use of layers and buffers leads to efficient updates on the client
+            side, which usually translates into speed and responsiveness.</p><p>Regardless of whether you allocate new layers or buffers, there is
+            always one layer guaranteed to be present: the default layer,
+            represented by libguac as <code class="varname">GUAC_DEFAULT_LAYER</code>. If
+            you only wish to affect to the main display of the connected client
+            somehow, this is the layer you want to use as the operand of your
+            drawing instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-streams"></a>Streams</h2></div></div></div><p>In addition to drawing, the Guacamole protocol supports streaming of arbitrary data.
+            The main operand of all streaming instructions is the stream, represented within libguac
+            by the <code class="classname">guac_stream</code> structure. Each
+                <code class="classname">guac_stream</code> exists either at the user or client levels,
+            depending on whether the stream is intended to be broadcast to all users or just one,
+            and is thus allocated using either <code class="methodname">guac_client_alloc_stream()</code>
+            or <code class="methodname">guac_user_alloc_stream()</code>. Explicitly-allocated streams must
+            eventually be freed with <code class="methodname">guac_client_free_stream()</code> or
+                <code class="methodname">guac_user_free_stream()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Just as with layers, care must be taken to invoke the allocate and free pairs
+                correctly for each explicitly-allocated stream.
+                    <code class="methodname">guac_client_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_client_alloc_stream()</code>, and
+                    <code class="methodname">guac_user_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_user_alloc_stream()</code>.</p><p>If these restrictions are not observed, the effect of invoking these functions is
+                undefined.</p></div><p>Streams are the means by which data is transmitted for clipboard (via the <a class="link" href="protocol-reference.html#clipboard-instruction" title="clipboard">"clipboard" instruction</a>), audio (via the <a class="link" href="protocol-reference.html#audio-stream-instruction" title="audio">"audio" instruction</a>), and even the images which make up typical drawing
+            operations (via the <a class="link" href="protocol-reference.html#img-instruction" title="img">"img" instruction</a>). They will either be allocated
+            for you, when an inbound stream is received from a user, or allocated manually, when an
+            outbound stream needs to be sent to a user. As with <code class="classname">guac_client</code>
+            and <code class="classname">guac_user</code>, each <code class="classname">guac_stream</code> has a set
+            of handlers which correspond to instructions received related to streams. These
+            instructions are documented in more detail in <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>
+            and <a class="xref" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference">Appendix B, <em>Guacamole protocol reference</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-sending-instructions"></a>Sending instructions</h2></div></div></div><p>All drawing in Guacamole is accomplished through the sending of instructions to the
+            connected client using the Guacamole protocol. The same goes for streaming audio, video,
+            or file content. All features and content supported by Guacamole ultimately reduce to
+            one or more instructions which are part of the documented protocol.</p><p>Most drawing using libguac is done using Cairo functions on a
+                <code class="classname">cairo_surface_t</code> (see the Cairo API documentation) which is
+            later streamed to the client using an <code class="methodname">img</code> instruction and
+            subsequent <code class="methodname">blob</code> instructions, sent via
+                <code class="methodname">guac_client_stream_png()</code>. Cairo was chosen as a dependency
+            of libguac to provide developers an existing and stable means of drawing to image
+            buffers which will ultimately be sent as easy-to-digest PNG images.</p><p>The Guacamole protocol also supports drawing primitives similar to
+            those present in the Cairo API and HTML5's canvas tag. These
+            instructions are documented individually in the Guacamole Protocol
+            Reference in a section dedicated to drawing instructions, and like
+            all Guacamole protocol instructions, each instruction has a
+            corresponding function in libguac following the naming convention
+                    <code class="methodname">guac_protocol_send_<em class="replaceable"><code>OPCODE</code></em>()</code>.</p><p>Each protocol function takes a <code class="classname">guac_socket</code> as an argument,
+            which is the buffered I/O object used by libguac. For each active connection, there are
+            two important types of <code class="classname">guac_socket</code> instance: the broadcast
+            socket, which exists at the client level within the <code class="classname">guac_client</code>,
+            and the per-user socket, which is accessible within each
+                <code class="classname">guac_user</code>. Data sent along the client-level broadcast socket
+            will be sent to all connected users beneath that <code class="classname">guac_client</code>,
+            while data sent along a user-level socket will be sent only to that user.</p><p>For example, to send a "size" instruction to all connected users via the client-level
+            broadcast socket, you could invoke:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(client-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>Or, if the instruction is only relevant to a particular user, the socket associated
+            with that user can be used instead:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(<span class="emphasis"><em>user</em></span>-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>The sockets provided by libguac are threadsafe at the protocol level. Instructions
+            written to a socket by multiple threads are guaranteed to be written atomically with
+            respect to that socket.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-event-handling"></a>Event handling</h2></div></div></div><p>Generally, as guacd receives instructions from the connected client, it invokes event
+            handlers if set within the associated <code class="classname">guac_user</code> or
+                <code class="classname">guac_client</code>, depending on the nature of the event. Most
+            events are user-specific, and thus the event handlers reside within the
+                <code class="classname">guac_user</code> structure, but there are client-specific events as
+            well, such as a user joining or leaving the current connection. Event handlers typically
+            correspond to Guacamole protocol instructions received over the socket by a connected
+            user, which in turn correspond to events which occur on the client side.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-key-events"></a>Key events</h3></div></div></div><p>When keys are pressed or released on the client side, the client sends key
+                instructions to the server. These instructions are parsed and handled by calling the
+                key event handler installed in the <span class="property">key_handler</span> member of the
+                    <code class="classname">guac_user</code>. This key handler is given the keysym of the
+                key that was changed, and a boolean value indicating whether the key was pressed or
+                released.</p><div class="informalexample"><pre class="programlisting">int key_handler(guac_user* user, int keysym, int pressed) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;key_handler = key_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-mouse-events"></a>Mouse events</h3></div></div></div><p>When the mouse is moved, and buttons are pressed or released, the client sends
+                mouse instructions to the server. These instructions are parsed and handled by
+                calling the mouse event handler installed in the <span class="property">mouse_handler</span>
+                member of the <code class="classname">guac_user</code>. This mouse handler is given the
+                current X and Y coordinates of the mouse pointer, as well as a mask indicating which
+                buttons are pressed and which are released.</p><div class="informalexample"><pre class="programlisting">int mouse_handler(guac_user* user, int x, int y, int button_mask) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;mouse_handler = mouse_handler;</pre></div><p>The file <code class="filename">client.h</code> also defines the mask
+                of each button for convenience:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_LEFT</code></span></dt><dd><p>The left mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_MIDDLE</code></span></dt><dd><p>The middle mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_RIGHT</code></span></dt><dd><p>The right mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_UP</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            upwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_DOWN</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            downwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-clipboard-events"></a>Clipboard, file, and other stream events</h3></div></div></div><p>If a connected user sends data which should be sent to the clipboard of the remote
+                desktop, guacd will trigger the clipboard handler installed in the
+                    <span class="property">clipboard_handler</span> member of the
+                    <code class="classname">guac_user</code> associated with that user.</p><div class="informalexample"><pre class="programlisting">int clipboard_handler(guac_user* user, guac_stream* stream, char* mimetype) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;clipboard_handler = clipboard_handler;</pre></div><p>The handler is expected to assign further handlers to the provided
+                    <code class="classname">guac_stream</code> as necessary, such that the <a class="link" href="protocol-reference.html#blob-instruction" title="blob">"blob"</a> and <a class="link" href="protocol-reference.html#end-instruction" title="end">"end"</a> instructions received along the stream
+                can be handled. A similar handler is provided for received files:</p><div class="informalexample"><pre class="programlisting">int file_handler(guac_user* user, guac_stream* stream,
+        char* mimetype, char* filename) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;file_handler = file_handler;</pre></div><p>This pattern continues for all other types of streams which can be received from a
+                user. The instruction which begins the stream has a corresponding handler within
+                    <code class="classname">guac_user</code>, and the metadata describing that stream and
+                provided with the instruction is included within the parameters passed to that
+                handler.</p><p>These handlers are, of course, optional. If any type of stream lacks a
+                corresponding handler, guacd will automatically close the stream and respond with an
+                    <a class="link" href="protocol-reference.html#ack-instruction" title="ack">"ack"
+                    instruction</a> and appropriate error code, informing the user's Guacamole
+                client that the stream is unsupported.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. The Guacamole protocol </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. <span class="package">guacamole-common</span></td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/openid-auth.html b/doc/1.3.0/gug/openid-auth.html
new file mode 100644
index 0000000..d602eeb
--- /dev/null
+++ b/doc/1.3.0/gug/openid-auth.html
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. OpenID Connect Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="cas-auth.html" title="Chapter 11. CAS Authentication" /><link rel="next" href="saml-auth.html" title="Chapter 13. SAML Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. OpenID Connect Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="saml-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="openid-auth"></a>Chapter 12. OpenID Connect Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></span></dt><dt><span class="section"><a href="openid-auth.html#completing-openid-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46227497717184" class="indexterm"></a><p><a class="link" href="http://openid.net/connect/" target="_top">OpenID Connect</a> is a widely-adopted
+        open standard for implementing single sign-on (SSO). <a class="link" href="https://oauth.net/articles/authentication/" target="_top">Not to be confused with
+            OAuth</a>, which is <span class="emphasis"><em>not</em></span> an authentication protocol, OpenID
+        Connect defines an authentication protocol in the form of a simple identity layer on top of
+        OAuth 2.0.</p><p>Guacamole's OpenID Connect support implements the "<a class="link" href="https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth" target="_top">implicit flow</a>" of the OpenID Connect standard, and allows authentication of
+        Guacamole users to be delegated to an identity provider which implements OpenID Connect,
+        removing the need for users to log into Guacamole directly. This module must be layered on
+        top of other authentication extensions that provide connection information, such as the
+            <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a>, as it only provides
+        user authentication.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="openid-downloading"></a>Downloading the OpenID Connect authentication extension</h2></div></div></div><p>The OpenID Connect authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The OpenID Connect authentication extension is packaged as a
+                <code class="filename">.tar.gz</code> file containing only the extension itself,
+                <code class="filename">guacamole-auth-openid-1.3.0.jar</code>, which must ultimately be
+            placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-openid-auth"></a>Installing support for OpenID Connect</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the OpenID Connect authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-openid-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use OpenID Connect authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-openid-config"></a>Configuring Guacamole for single sign-on with OpenID Connect</h3></div></div></div><a id="idm46227495609696" class="indexterm"></a><a id="idm46227495608768" class="indexterm"></a><p>Guacamole's OpenID connect support requires several properties which describe both
+                the identity provider and the Guacamole deployment. These properties are
+                    <span class="emphasis"><em>absolutely required in all cases</em></span>, as they dictate how
+                Guacamole should connect to the identity provider, how it should verify the identity
+                provider's response, and how the identity provider should redirect users back to
+                Guacamole once their identity has been confirmed:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-authorization-endpoint</span></span></dt><dd><p>The authorization endpoint (URI) of the OpenID service.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">authorization_endpoint</span>" property of the JSON
+                            file hosted at
+                                <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-jwks-endpoint</span></span></dt><dd><p>The endpoint (URI) of the JWKS service which defines how received ID
+                            tokens (<a class="link" href="https://jwt.io/" target="_top">JSON Web Tokens</a> or
+                            JWTs) shall be validated.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">jwks_uri</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-issuer</span></span></dt><dd><p>The issuer to expect for all received ID tokens.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">issuer</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-client-id</span></span></dt><dd><p>The OpenID client ID which should be submitted to the OpenID service
+                            when necessary. This value is typically provided to you by the OpenID
+                            service when OpenID credentials are generated for your
+                            application.</p></dd><dt><span class="term"><span class="property">openid-redirect-uri</span></span></dt><dd><p>The URI that should be submitted to the OpenID service such that they
+                            can redirect the authenticated user back to Guacamole after the
+                            authentication process is complete. This must be the full URL that a
+                            user would enter into their browser to access Guacamole.</p></dd></dl></div><p>Additional optional properties are available to control how claims within received
+                ID tokens are used to derive the user's Guacamole username, any associated groups,
+                the OpenID scopes requested when user identities are confirmed, and to control the
+                maximum amount of time allowed for various aspects of the conversation with the
+                identity provider:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-username-claim-type</span></span></dt><dd><p>The claim type within any valid JWT that contains the authenticated
+                            user's username. By default, the "<code class="constant">email</code>" claim type
+                            is used.</p></dd><dt><span class="term"><span class="property">openid-groups-claim-type</span></span></dt><dd><p>The claim type within any valid JWT that contains the list of groups
+                            of which the authenticated user is a member. By default, the
+                                "<code class="constant">groups</code>" claim type is used.</p></dd><dt><span class="term"><span class="property">openid-scope</span></span></dt><dd><p>The space-separated list of OpenID scopes to request.  OpenID scopes
+                            determine the information returned within the OpenID token, and thus
+                            affect what values can be used as an authenticated user's username. To
+                            be compliant with OpenID, at least "<code class="constant">openid profile</code>"
+                            must be requested. By default, "<code class="constant">openid email
+                                profile</code>" is used.</p></dd><dt><span class="term"><span class="property">openid-allowed-clock-skew</span></span></dt><dd><p>The amount of clock skew tolerated for timestamp comparisons between
+                            the Guacamole server and OpenID service clocks, in seconds. By default,
+                            clock skew of up to 30 seconds is tolerated.</p></dd><dt><span class="term"><span class="property">openid-max-token-validity</span></span></dt><dd><p>The maximum amount of time that an OpenID token should remain valid,
+                            in minutes. By default, each OpenID token remains valid for 300 minutes
+                            (5 hours).</p></dd><dt><span class="term"><span class="property">openid-max-nonce-validity</span></span></dt><dd><p>The maximum amount of time that a nonce generated by the Guacamole
+                            server should remain valid, in minutes. As each OpenID request has a
+                            unique nonce value, this imposes an upper limit on the amount of time
+                            any particular OpenID request can result in successful authentication
+                            within Guacamole. By default, each generated nonce expires after 10
+                            minutes.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-openid-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before OpenID Connect authentication can be used. <span class="emphasis"><em>Doing this
+                    will disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="saml-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. CAS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. SAML Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/preface.html b/doc/1.3.0/gug/preface.html
new file mode 100644
index 0000000..00fe880
--- /dev/null
+++ b/doc/1.3.0/gug/preface.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Introduction</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="index.html" title="Guacamole Manual" /><link rel="next" href="users-guide.html" title="Part I. User's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="preface"></a>Introduction</h1></div></div></div><p>This book is the official Apache Guacamole manual, written by the upstream developers
+            of the Guacamole project. It is also the official general documentation, and an online
+            version at <a class="link" href="http://guacamole.apache.org/" target="_top">http://guacamole.apache.org/</a>. It is a work in progress which will
+            be continuously updated as Guacamole changes with each release.</p><p>We decided to maintain the documentation for Guacamole as a book, as there is an awful
+            lot that can be done with the Guacamole web application, and even more that can be done
+            with the API. This book is intended to explore the possibilities of Guacamole as an
+            application, and to provide documentation necessary to install, maintain, and use
+            Guacamole.</p><p>For the sake of users and administrators, we have provided a high-level overview of
+            Guacamole's architecture and technical design, as well as basic usage instructions and
+            installation instructions for common platforms.</p><p>For the sake of developers, we have provided a protocol reference and tutorials for
+            common tasks (implementing protocol support, integrating Guacamole into your own
+            application, etc.) to give a good starting point beyond simply looking at the Guacamole
+            codebase.</p><p>This particular edition of the <em class="citetitle">Guacamole Manual</em> covers
+            Guacamole version 1.3.0. New releases which create new features or break
+            compatibility will result in new editions of the user's guide, as will any necessary
+            corrections. As the official documentation for the project, this book will always be
+            freely available in its entirety online.</p><a id="idm46227498146400" class="indexterm"></a><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="what-is-guac"></a>What is Guacamole?</h2></div></div></div><a id="idm46227498144368" class="indexterm"></a><p>Guacamole is an HTML5 web application that provides access to desktop environments
+                using remote desktop protocols (such as VNC or RDP). Guacamole is also the project
+                that produces this web application, and provides an API that drives it. This API can
+                be used to power other similar applications or services.</p><p>"Guacamole" is most commonly used to refer to the web application produced by the
+                Guacamole project using their API. This web application is part of a stack that
+                provides a protocol-agnostic remote desktop gateway. Written in JavaScript and using
+                only HTML5 and other standards, the client part of Guacamole requires nothing more
+                than a modern web browser or web-enabled device when accessing any of the desktops
+                served.</p><a id="idm46227498142080" class="indexterm"></a><p>Historically, Guacamole was an HTML5 VNC client, and before that, a JavaScript
+                Telnet client called <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span>
+                ("RealMint" is an anagram for "terminal"), but this is no longer the case.
+                Guacamole's architecture has grown to encompass remote desktop in general, and can
+                be used as a gateway for any number of computers. Originally a proof-of-concept,
+                Guacamole is now performant enough for daily use, and all Guacamole development is
+                done over Guacamole.</p><p>As an API, Guacamole provides a common and efficient means of streaming text data
+                over a JavaScript-based tunnel using either HTTP or WebSocket, and a client
+                implementation which supports the Guacamole protocol and renders the remote display
+                when combined with a Guacamole protocol stream from the tunnel.</p><p>It provides cross-browser mouse and keyboard events, an XML-driven on-screen
+                keyboard, and synchronized nestable layers with hardware-accelerated compositing.
+                Projects that wish to provide remote desktop support over HTML5 can leverage the
+                years of research and development that went into Guacamole by incorporating the API
+                into their application or service.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anywhere"></a>Why use Guacamole?</h2></div></div></div><p>The principle reason to use Guacamole is constant, world-wide, unfettered access
+                to your computers.</p><p>Guacamole allows access one or more desktops from anywhere remotely, without
+                having to install a client, particularly when installing a client is not possible.
+                By setting up a Guacamole server, you can provide access to any other computer on
+                the network from virtually any other computer on the internet, anywhere in the
+                world. Even mobile phones or tablets can be used, without having to install
+                anything.</p><p>As a true web application whose communication is over HTTP or HTTPS only,
+                Guacamole allows you to access your machines from anywhere without violating the
+                policy of your workplace, and without requiring the installation of special clients.
+                The presence of a proxy or corporate firewall does not prevent Guacamole use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anything"></a>Access your computers from any device</h2></div></div></div><p>As Guacamole requires only a reasonably-fast, standards-compliant browser,
+                Guacamole will run on many devices, including mobile phones and tablets.</p><p>Guacamole is specifically designed to not care whether you have a mouse, keyboard,
+                touchscreen, or any combination of those.</p><p>One of the major design philosophies behind Guacamole is that it should never
+                assume you have a particular device (ie: a mobile phone) just because your browser
+                has or is missing a specific feature (ie: touch events or a smallish screen).
+                Guacamole's codebase provides support for both mouse and touch events
+                simultaneously, without choosing one over the other, while the interface is intended
+                to be usable regardless of screen size.</p><p>Barring bugs, you should be able to use Guacamole on just about any modern device
+                with a web browser.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="non-physical-computer"></a>Keep a computer in the "cloud"</h2></div></div></div><p>Ignoring the buzzword, it's often useful to have a computer that has no dedicated
+                physical hardware, where its processing and storage power are handled transparently
+                by redundant systems in some remote datacenter.</p><p>Computers hosted on virtualized hardware are more resilient to failures, and with
+                so many companies now offering on-demand computing resources, Guacamole is a perfect
+                way to access several machines that are only accessible over the internet.</p><p>In fact, all Guacamole development is done on computers like this. This is partly
+                because we like the mobility, and partly because we want to ensure Guacamole is
+                always performant enough for daily use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="group-access"></a>Provide easy access to a group</h2></div></div></div><p>Guacamole allows you to centralize access to a large group of machines, and
+                specify on a per-user basis which machines are accessible. Rather than remember a
+                list of machines and credentials, users need only log into a central server and
+                click on one of the connections listed.</p><p>If you have multiple computers which you would like to access remotely, or you are
+                part of a group where each person has a set of machines that they need remote access
+                to, Guacamole is a good way to provide that access while also ensuring that access
+                is available from anywhere.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="adding-remote-access"></a>Adding HTML5 remote access to your existing infrastructure</h2></div></div></div><p>As Guacamole is an API, not just a web application, the core components and
+                libraries provided by the Guacamole project can be used to add HTML5 remote access
+                features to an existing application. You need not use the main Guacamole web
+                application; you can write (or integrate with) your own rather easily.</p><p>If you host an on-demand computing service, adding HTML5-based remote access
+                allows users of your service more broad access; users need nothing more than a web
+                browser to see their computers' screens.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Guacamole Manual </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part I. User's Guide</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/protocol-reference.html b/doc/1.3.0/gug/protocol-reference.html
new file mode 100644
index 0000000..64dfdcf
--- /dev/null
+++ b/doc/1.3.0/gug/protocol-reference.html
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Guacamole protocol reference</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="faq.html" title="Appendix A. FAQ" /><link rel="next" href="book-index.html" title="Index" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. Guacamole protocol reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="protocol-reference"></a>Appendix B. Guacamole protocol reference</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#arc-instruction">arc</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cfill-instruction">cfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clip-instruction">clip</a></span></dt><dt><span class="section"><a href="protocol-reference.html#close-instruction">close</a></span></dt><dt><span class="section"><a href="protocol-reference.html#copy-instruction">copy</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cstroke-instruction">cstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cursor-instruction">cursor</a></span></dt><dt><span class="section"><a href="protocol-reference.html#curve-instruction">curve</a></span></dt><dt><span class="section"><a href="protocol-reference.html#dispose-instruction">dispose</a></span></dt><dt><span class="section"><a href="protocol-reference.html#distort-instruction">distort</a></span></dt><dt><span class="section"><a href="protocol-reference.html#identity-instruction">identity</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lfill-instruction">lfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#line-instruction">line</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lstroke-instruction">lstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#move-instruction">move</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pop-instruction">pop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#push-instruction">push</a></span></dt><dt><span class="section"><a href="protocol-reference.html#rect-instruction">rect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#reset-instruction">reset</a></span></dt><dt><span class="section"><a href="protocol-reference.html#set-instruction">set</a></span></dt><dt><span class="section"><a href="protocol-reference.html#shade-instruction">shade</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#start-instruction">start</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transfer-instruction">transfer</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transform-instruction">transform</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#ack-instruction">ack</a></span></dt><dt><span class="section"><a href="protocol-reference.html#argv-instruction">argv</a></span></dt><dt><span class="section"><a href="protocol-reference.html#audio-stream-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#blob-instruction">blob</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clipboard-instruction">clipboard</a></span></dt><dt><span class="section"><a href="protocol-reference.html#end-instruction">end</a></span></dt><dt><span class="section"><a href="protocol-reference.html#file-stream-instruction">file</a></span></dt><dt><span class="section"><a href="protocol-reference.html#img-instruction">img</a></span></dt><dt><span class="section"><a href="protocol-reference.html#nest-stream-instruction">nest</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pipe-instruction">pipe</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-stream-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#body-object-instruction">body</a></span></dt><dt><span class="section"><a href="protocol-reference.html#filesystem-object-instruction">filesystem</a></span></dt><dt><span class="section"><a href="protocol-reference.html#get-object-instruction">get</a></span></dt><dt><span class="section"><a href="protocol-reference.html#put-object-instruction">put</a></span></dt><dt><span class="section"><a href="protocol-reference.html#undefine-object-instruction">undefine</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#audio-handshake-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#connect-instruction">connect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#image-handshake-instruction">image</a></span></dt><dt><span class="section"><a href="protocol-reference.html#select-instruction">select</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-handshake-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#timezone-handshake-instruction">timezone</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-handshake-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#args-instruction">args</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#client-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#server-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#error-instruction">error</a></span></dt><dt><span class="section"><a href="protocol-reference.html#log-instruction">log</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#ready-instruction">ready</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#key-instruction">key</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-event-instruction">size</a></span></dt></dl></dd></dl></div><a id="idm46227491432368" class="indexterm"></a><a id="idm46227491431600" class="indexterm"></a><a id="idm46227491430832" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="drawing-instructions"></a>Drawing instructions</h2></div></div></div><a id="idm46227491428896" class="indexterm"></a><a id="idm46227491428000" class="indexterm"></a><a id="idm46227491426656" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="arc-instruction"></a>arc</h3></div></div></div><a id="idm46227491423328" class="indexterm"></a><p>The arc instruction adds the specified arc subpath to the existing
+        path, creating a new path if no path exists. The path created can be
+        modified further by other path-type instructions, and finally stroked,
+        filled, and/or closed.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified arc subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>radius</code></em></span></dt><dd><p>The radius of the circle containing the arc to be drawn,
+                    in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p>The starting angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>end</code></em></span></dt><dd><p>The ending angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>negative</code></em></span></dt><dd><p>Non-zero if the arc should be drawn from START to END in
+                    order of decreasing angle, zero otherwise.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cfill-instruction"></a>cfill</h3></div></div></div><a id="idm46227491405680" class="indexterm"></a><p>Fills the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to fill the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to fill the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clip-instruction"></a>clip</h3></div></div></div><a id="idm46227491384784" class="indexterm"></a><p>Applies the current path as the clipping path. Future operations will
+        only draw within the current path. Note that future clip instructions
+        will also be limited by this path. To set a completely new clipping path,
+        you must first reset the layer with a reset instruction. If you wish to
+        only reset the clipping path, but preserve the current transform matrix,
+        push the layer state before setting the clipping path, and pop the layer
+        state to reset.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose clipping path should be set.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="close-instruction"></a>close</h3></div></div></div><a id="idm46227491378720" class="indexterm"></a><p>Closes the current path by connecting the start and end points with a
+        straight line.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be closed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="copy-instruction"></a>copy</h3></div></div></div><a id="idm46227491372496" class="indexterm"></a><p>Copies image data from the specified rectangle of the specified layer
+        or buffer to a different location of another specified layer or
+        buffer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data on
+                    the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cstroke-instruction"></a>cstroke</h3></div></div></div><a id="idm46227491350528" class="indexterm"></a><p>Strokes the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when stroking the current path
+                    in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be stroked.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to stroke the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cursor-instruction"></a>cursor</h3></div></div></div><p>Sets the client's cursor to the image data from the specified
+        rectangle of a layer, with the specified hotspot.</p><a id="idm46227491327712" class="indexterm"></a><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="curve-instruction"></a>curve</h3></div></div></div><a id="idm46227491316704" class="indexterm"></a><p>Adds the specified cubic bezier curve subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified curve subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>cp1x</code></em></span></dt><dd><p>The X coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp1y</code></em></span></dt><dd><p>The Y coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2x</code></em></span></dt><dd><p>The X coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2y</code></em></span></dt><dd><p>The Y coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the curve.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the curve.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dispose-instruction"></a>dispose</h3></div></div></div><a id="idm46227491298416" class="indexterm"></a><p>Removes the specified layer. The specified layer will be recreated as a
+        new layer if it is referenced again.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to remove.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="distort-instruction"></a>distort</h3></div></div></div><a id="idm46227491291936" class="indexterm"></a><p>Sets the given affine transformation matrix to the layer. Unlike
+        transform, this operation is independent of any previously sent
+        transformation matrix. This operation can be undone by setting the
+        layer's transformation matrix to the identity matrix using
+        distort</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to distort.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="identity-instruction"></a>identity</h3></div></div></div><a id="idm46227491273952" class="indexterm"></a><p>Resets the transform matrix of the specified layer to the identity
+        matrix.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose transform matrix should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lfill-instruction"></a>lfill</h3></div></div></div><a id="idm46227491267472" class="indexterm"></a><p>Fills the current path with a tiled pattern of the image data from the
+        specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="line-instruction"></a>line</h3></div></div></div><a id="idm46227491257168" class="indexterm"></a><p>Adds the specified line subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified line subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the line.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the line.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lstroke-instruction"></a>lstroke</h3></div></div></div><a id="idm46227491246800" class="indexterm"></a><p>Strokes the current path with a tiled pattern of the image data from
+        the specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="move-instruction"></a>move</h3></div></div></div><a id="idm46227491230576" class="indexterm"></a><p>Moves the given layer to the given location within the specified parent
+        layer. This operation is applicable only to layers, and cannot be
+        applied to buffers (layers with negative indices). Applying this
+        operation to the default layer (layer 0) also has no effect.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to move.</p></dd><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p>The layer that should be the parent of the given
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>z</code></em></span></dt><dd><p>The relative Z-ordering of this layer. Layers with larger
+                    values will appear above layers with smaller values.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pop-instruction"></a>pop</h3></div></div></div><a id="idm46227491216176" class="indexterm"></a><p>Restores the previous state of the specified layer from the stack. The
+        state restored includes the transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be restored.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="push-instruction"></a>push</h3></div></div></div><a id="idm46227491209616" class="indexterm"></a><p>Saves the current state of the specified layer to the stack. The state
+        saved includes the current transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be saved.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="rect-instruction"></a>rect</h3></div></div></div><a id="idm46227491203136" class="indexterm"></a><p>Adds a rectangular path to the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image
+                    data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="reset-instruction"></a>reset</h3></div></div></div><a id="idm46227491186896" class="indexterm"></a><p>Resets the transformation and clip state of the layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="set-instruction"></a>set</h3></div></div></div><a id="idm46227491180464" class="indexterm"></a><p>Sets the given client-side property to the specified value. Currently
+        there is only one property: miter-limit, the maximum distance between
+        the inner and outer points of a miter joint, proportional to stroke
+        width (if miter-limit is set to 10.0, the default, then the maximum
+        distance between the points of the joint is 10 times the stroke
+        width).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose property should be set.</p></dd><dt><span class="term"><em class="parameter"><code>property</code></em></span></dt><dd><p>The name of the property to set.</p></dd><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>The value to set the given property to.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shade-instruction"></a>shade</h3></div></div></div><a id="idm46227491170288" class="indexterm"></a><p>Sets the opacity of the given layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose opacity should be set.</p></dd><dt><span class="term"><em class="parameter"><code>opacity</code></em></span></dt><dd><p>The opacity of the layer, where 0 is completely
+                    transparent, and 255 is completely opaque.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-instruction"></a>size</h3></div></div></div><a id="idm46227491161920" class="indexterm"></a><p>Sets the size of the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to resize.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new width of the layer</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new height of the layer</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="start-instruction"></a>start</h3></div></div></div><a id="idm46227491151648" class="indexterm"></a><p>Starts a new subpath at the specified point.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should start a new subpath.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the first point of the new
+                    subpath.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the first point of the new
+                    subpath.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transfer-instruction"></a>transfer</h3></div></div></div><a id="idm46227491141216" class="indexterm"></a><p>Transfers image data from the specified rectangle of the specified layer or buffer to a
+        different location of another specified layer or buffer, using the specified transfer
+        function. </p><p>For a list of available functions, see the definition of
+            <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included with
+        libguac.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to transfer image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>function</code></em></span></dt><dd><p>The index of the transfer function to use.</p><p>For a list of available functions, see the definition of
+                        <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included
+                    with libguac.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transform-instruction"></a>transform</h3></div></div></div><a id="idm46227491114896" class="indexterm"></a><p>Applies the specified transformation matrix to future operations.
+        Unlike distort, this operation is dependent on any previously sent
+        transformation matrices, and only affects future operations. This
+        operation can be undone by setting the layer's transformation matrix to
+        the identity matrix using identity, but image data already drawn will
+        not be affected.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to apply the given transformation matrix
+                    to.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="streaming-instructions"></a>Streaming instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ack-instruction"></a>ack</h3></div></div></div><a id="idm46227491095536" class="indexterm"></a><p>The ack instruction acknowledges a received data blob, providing a status code and message
+        indicating whether the operation associated with the blob succeeded or failed. A status code
+        other than <code class="constant">SUCCESS</code> implicitly ends the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>A human-readable error message. This typically is not exposed within any user
+                    interface, and mainly helps with debugging.</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code denoting success or failure.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="status-codes"></a>Status codes</h4></div></div></div><p>Several Guacamole instructions, and various other internals of the Guacamole core, use
+            a common set of numeric status codes. These codes denote success or failure of
+            operations, and can be rendered by user interfaces in a human-readable
+                way.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Code</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td>0</td><td><code class="constant">SUCCESS</code></td><td>
+                                <p>The operation succeeded. No error.</p>
+                            </td></tr><tr><td>256</td><td><code class="constant">UNSUPPORTED</code></td><td>
+                                <p>The requested operation is unsupported.</p>
+                            </td></tr><tr><td>512</td><td><code class="constant">SERVER_ERROR</code></td><td>
+                                <p>An internal error occurred, and the operation could not be
+                                    performed.</p>
+                            </td></tr><tr><td>513</td><td><code class="constant">SERVER_BUSY</code></td><td>
+                                <p>The operation could not be performed because the server is
+                                    busy.</p>
+                            </td></tr><tr><td>514</td><td><code class="constant">UPSTREAM_TIMEOUT</code></td><td>
+                                <p>The upstream server is not responding. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>515</td><td><code class="constant">UPSTREAM_ERROR</code></td><td>
+                                <p>The upstream server encountered an error. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>516</td><td><code class="constant">RESOURCE_NOT_FOUND</code></td><td>
+                                <p>An associated resource, such as a file or stream, could not be
+                                    found, and thus the operation failed.</p>
+                            </td></tr><tr><td>517</td><td><code class="constant">RESOURCE_CONFLICT</code></td><td>
+                                <p>A resource is already in use or locked, preventing the
+                                    requested operation.</p>
+                            </td></tr><tr><td>518</td><td><code class="constant">RESOURCE_CLOSED</code></td><td>
+                                <p>The requested operation cannot continue because the associated
+                                    resource has been closed.</p>
+                            </td></tr><tr><td>519</td><td><code class="constant">UPSTREAM_NOT_FOUND</code></td><td>
+                                <p>The upstream server does not appear to exist, or cannot be
+                                    reached over the network. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>520</td><td><code class="constant">UPSTREAM_UNAVAILABLE</code></td><td>
+                                <p>The upstream server is refusing to service connections. In
+                                    most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>521</td><td><code class="constant">SESSION_CONFLICT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    conflicts with another session. In most cases, the upstream
+                                    server is the remote desktop server.</p>
+                            </td></tr><tr><td>522</td><td><code class="constant">SESSION_TIMEOUT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    appeared to be inactive. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>523</td><td><code class="constant">SESSION_CLOSED</code></td><td>
+                                <p>The session within the upstream server has been forcibly
+                                    closed. In most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>768</td><td><code class="constant">CLIENT_BAD_REQUEST</code></td><td>
+                                <p>The parameters of the request are illegal or otherwise
+                                    invalid.</p>
+                            </td></tr><tr><td>769</td><td><code class="constant">CLIENT_UNAUTHORIZED</code></td><td>
+                                <p>Permission was denied, because the user is not logged in. Note
+                                    that the user may be logged into Guacamole, but still not logged
+                                    in with respect to the remote desktop server.</p>
+                            </td></tr><tr><td>771</td><td><code class="constant">CLIENT_FORBIDDEN</code></td><td>
+                                <p>Permission was denied, and logging in will not solve the
+                                    problem.</p>
+                            </td></tr><tr><td>776</td><td><code class="constant">CLIENT_TIMEOUT</code></td><td>
+                                <p>The client (usually the user of Guacamole or their browser) is
+                                    taking too long to respond.</p>
+                            </td></tr><tr><td>781</td><td><code class="constant">CLIENT_OVERRUN</code></td><td>
+                                <p>The client has sent more data than the protocol allows.</p>
+                            </td></tr><tr><td>783</td><td><code class="constant">CLIENT_BAD_TYPE</code></td><td>
+                                <p>The client has sent data of an unexpected or illegal
+                                    type.</p>
+                            </td></tr><tr><td>797</td><td><code class="constant">CLIENT_TOO_MANY</code></td><td>
+                                <p>The client is already using too many resources. Existing
+                                    resources must be freed before further requests are
+                                    allowed.</p>
+                            </td></tr></tbody></table></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="argv-instruction"></a>argv</h3></div></div></div><a id="idm46227491022272" class="indexterm"></a><p>Allocates a new stream, associating it with the given argument (connection parameter)
+        metadata. The relevant connection parameter data will later be sent along the stream with
+        blob instructions. If sent by the client, this data will be the desired new value of the
+        connection parameter being changed, and will be applied if the server supports changing that
+        connection parameter while the connection is active. If sent by the server, this data will
+        be the current value of a connection parameter being exposed to the client.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the connection parameter being sent. In most cases, this will
+                    be "text/plain".</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the connection parameter whose value is being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-stream-instruction"></a>audio</h3></div></div></div><a id="idm46227491011968" class="indexterm"></a><p>Allocates a new stream, associating it with the given audio metadata. Audio data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the audio data being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="blob-instruction"></a>blob</h3></div></div></div><a id="idm46227491003648" class="indexterm"></a><p>Sends a blob of data along the given stream. This blob of data is arbitrary,
+        base64-encoded data, and only has meaning to the Guacamole client or server through the
+        metadata assigned to the stream when the stream was allocated.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream along which the given data should be sent.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The base64-encoded data to send.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clipboard-instruction"></a>clipboard</h3></div></div></div><a id="idm46227490995376" class="indexterm"></a><p>Allocates a new stream, associating it with the given clipboard metadata. The clipboard
+        data will later be sent along the stream with blob instructions. If sent by the client, this
+        data will be the contents of the client-side clipboard. If sent by the server, this data
+        will be the contents of the clipboard within the remote desktop.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the clipboard data being sent. In most cases, this will be
+                    "text/plain".</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="end-instruction"></a>end</h3></div></div></div><a id="idm46227490986992" class="indexterm"></a><p>The end instruction terminates an open stream, freeing any client-side or server-side
+        resources. Data sent to a terminated stream will be ignored. Terminating a stream with the
+        end instruction only denotes the end of the stream and does not imply an error.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="file-stream-instruction"></a>file</h3></div></div></div><a id="idm46227490980672" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary file metadata. The
+        contents of the file will later be sent along the stream with blob instructions. The full
+        size of the file need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the file being sent.</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>The name of the file, as it would be saved on a filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="img-instruction"></a>img</h3></div></div></div><a id="idm46227490970480" class="indexterm"></a><p>Allocates a new stream, associating it with the metadata of an image update, including the
+        image type, the destination layer, and destination coordinates. The contents of the image
+        will later be sent along the stream with blob instructions. The full size of the image need
+        not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the image being sent.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="nest-stream-instruction"></a>nest</h3></div></div></div><a id="idm46227490954336" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The <code class="function">nest</code> instruction has been
+            deprecated.</em></span></p><p>The <code class="function">nest</code> instruction is no longer necessary, having been replaced
+            by other streaming instructions (such as <a class="link" href="protocol-reference.html#blob-instruction" title="blob"><code class="function">blob</code></a>, <a class="link" href="protocol-reference.html#ack-instruction" title="ack"><code class="function">ack</code></a>, and <a class="link" href="protocol-reference.html#end-instruction" title="end"><code class="function">end</code></a>). Code using the <code class="function">nest</code>
+            instruction should instead write instructions directly without wrapping those
+            instructions within <code class="function">nest</code>.</p></div><p>Encodes part of one or more instructions within a single instruction,
+        associating that packet of data with a stream index. Future nest
+        instructions with the same stream index will append their data to the
+        same logical stream on the client side. Once nested data is received on
+        the client side, the client immediately executes any completed
+        instructions within the associated stream, in order.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>The index of the stream this data should be appended to.
+                    This index is completely arbitrary, and denotes only how
+                    nested data should be reassembled.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The protocol data, containing part of one or more
+                    instructions.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pipe-instruction"></a>pipe</h3></div></div></div><a id="idm46227490939488" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary named pipe metadata. The
+        contents of the pipe will later be sent along the stream with blob instructions. Pipes in
+        the Guacamole protocol are unidirectional, named pipes, very similar to a UNIX FIFO or pipe.
+        It is up to client-side code to handle pipe data appropriately, likely based upon the name
+        of the pipe, which is arbitrary. Pipes may be opened by either the client or the
+        server.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent along the pipe.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The arbitrary name of the pipe, which may have special meaning to client-side
+                    code.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-stream-instruction"></a>video</h3></div></div></div><a id="idm46227490928624" class="indexterm"></a><p>Allocates a new stream, associating it with the given video metadata. Video data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The index of the layer to stream the video data into. The effect of other
+                    drawing operations on this layer during playback is undefined, as the client
+                    codec implementation may leverage any rendering mechanism it sees fit, including
+                    hardware decoding.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the video data being sent.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="object-instructions"></a>Object instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="body-object-instruction"></a>body</h3></div></div></div><a id="idm46227490916704" class="indexterm"></a><p>Allocates a new stream, associating it with the name of a stream previously requested by a
+        get instruction. The contents of the stream will be sent later with blob instructions. The
+        full size of the stream need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream associated with the object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="filesystem-object-instruction"></a>filesystem</h3></div></div></div><a id="idm46227490904128" class="indexterm"></a><p>Allocates a new object, associating it with the given arbitrary filesystem metadata. The
+        contents of files and directories within the filesystem will later be sent along streams
+        requested with get instructions or created with put instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="get-object-instruction"></a>get</h3></div></div></div><a id="idm46227490895600" class="indexterm"></a><p>Requests that a new stream be created, providing read access to the object stream having
+        the given name. The requested stream will be created, in response, with a body
+        instruction.</p><p>Stream names are arbitrary and dictated by the object from which they are requested, with
+        the exception of the root stream of the object itself, which has the reserved name
+            "<code class="constant">/</code>". The root stream of the object has the mimetype
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>", and
+        provides a simple JSON map of available stream names to their corresponding mimetypes. If
+        the object contains a hierarchy of streams, some of these streams may also be
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>".</p><p>For example, the ultimate content of the body stream provided in response to a get request
+        for the root stream of an object containing two text streams, "A" and "B", would be the
+        following:</p><div class="informalexample"><pre class="programlisting">{
+    "A" : "text/plain",
+    "B" : "text/plain"
+}</pre></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to request a stream from.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream being requested from the given object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="put-object-instruction"></a>put</h3></div></div></div><a id="idm46227490883280" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary object and stream name.
+        The contents of the stream will later be sent with blob instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream within the given object to which data is being
+                    sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="undefine-object-instruction"></a>undefine</h3></div></div></div><a id="idm46227490870816" class="indexterm"></a><p>Undefines an existing object, allowing its index to be reused by another future object.
+        The resource associated with the original object may or may not continue to exist - it
+        simply no longer has an associated object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to undefine.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-handshake-instructions"></a>Client handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-handshake-instruction"></a>audio</h3></div></div></div><a id="idm46227490862784" class="indexterm"></a><p>Specifies which audio mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="connect-instruction"></a>connect</h3></div></div></div><a id="idm46227490858560" class="indexterm"></a><p>Begins the connection using the previously specified protocol with the
+        given arguments.  This is the last instruction sent during the handshake
+        phase.</p><p>The parameters of this instruction correspond exactly to the
+        parameters of the received args instruction. If the received args
+        instruction has, for example, three parameters, the responding connect
+        instruction must also have three parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="image-handshake-instruction"></a>image</h3></div></div></div><a id="idm46227490853664" class="indexterm"></a><p>Specifies which image mimetypes are supported by the client. Each parameter must be a
+        single mimetype, listed in order of client preference, with the optimal mimetype being the
+        first parameter.</p><p>It is expected that the supported mimetypes will include at least "image/png" and
+        "image/jpeg", and the server <span class="emphasis"><em>may</em></span> safely assume that these mimetypes are
+        supported, even if they are absent from the handshake.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="select-instruction"></a>select</h3></div></div></div><a id="idm46227490848368" class="indexterm"></a><p>Requests that the connection be made using the specified protocol, or to the specified
+        existing connection. Whether a new connection is established or an existing connection is
+        joined depends on whether the ID of an active connection is provided. The Guacamole protocol
+        dictates that the IDs generated for active connections (provided during the handshake of
+        those connections via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready instruction</a>) must not collide with any
+        supported protocols.</p><p>This is the first instruction sent during the handshake phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>The name of the protocol to use, such as "vnc" or "rdp", or the ID of the
+                    active connection to be joined, as returned via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready
+                        instruction</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-handshake-instruction"></a>size</h3></div></div></div><a id="idm46227490839552" class="indexterm"></a><p>Specifies the client's optimal screen size and resolution.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The optimal screen height.</p></dd><dt><span class="term"><em class="parameter"><code>dpi</code></em></span></dt><dd><p>The optimal screen resolution, in approximate DPI.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="timezone-handshake-instruction"></a>timezone</h3></div></div></div><a id="idm46227490829120" class="indexterm"></a><p>Specifies the timezone of the client system, in IANA zone key format.
+        This is a single-value parameter, and may be used by protocols to
+        set the timezone on the remote computer, if the remote system allows
+        the timezone to be configured.  This instruction is optional.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timezone</code></em></span></dt><dd></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-handshake-instruction"></a>video</h3></div></div></div><a id="idm46227490822384" class="indexterm"></a><p>Specifies which video mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-handshake-instructions"></a>Server handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="args-instruction"></a>args</h3></div></div></div><p>Reports the expected format of the argument list for the protocol
+        requested by the client. This message can be sent by the server during
+        the handshake phase only.</p><p>The first parameter of this instruction will be the protocol version
+        supported by the server.  This is used to negotiate protocol
+        compatibility between the client and the server, with the highest
+        supported protocol by both sides being chosen.  Versions of Guacamole
+        prior to 1.1.0 do not support protocol version negotiation, and will
+        silently ignore this instruction.</p><p>The remaining parameters of the args instruction are the names of all
+        connection parameters accepted by the server for the protocol selected
+        by the client, in order. The client's responding connect instruction
+        must contain the values of each of these parameters in the same order.
+    </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-control-instructions"></a>Client control instructions</h2></div></div></div><a id="idm46227490813136" class="indexterm"></a><a id="idm46227490812240" class="indexterm"></a><a id="idm46227490810896" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46227490807072" class="indexterm"></a><p>Notifies the server that the connection is about to be closed by the
+        client. This message can be sent by the client during any phase, and
+        takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-nop-instruction"></a>nop</h3></div></div></div><a id="idm46227490803136" class="indexterm"></a><p>The client "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by the Guacamole server. Its main use is as a keep-alive signal, and may
+        be sent by Guacamole clients when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-sync-instruction"></a>sync</h3></div></div></div><a id="idm46227490798896" class="indexterm"></a><p>Reports that all operations as of the given server-relative timestamp
+        have been completed. If a sync is received from the server, the client
+        must respond with a corresponding sync once all previous operations have
+        been completed, or the server may stop sending updates until the client
+        catches up. For the client, sending a sync with a timestamp newer than
+        any timestamp received from the server is an error.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-control-instructions"></a>Server control instructions</h2></div></div></div><a id="idm46227490792992" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46227490789232" class="indexterm"></a><p>Notifies the client that the connection is about to be closed by the server. This message
+        can be sent by the server during any phase, and takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="error-instruction"></a>error</h3></div></div></div><a id="idm46227490785120" class="indexterm"></a><p>Notifies the client that the connection is about to be closed due to
+        the specified error. This message can be sent by the server during any
+        phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>text</code></em></span></dt><dd><p>An arbitrary message describing the error</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code describing the error. For a list of status codes,
+                    see the table in <a class="xref" href="protocol-reference.html#status-codes" title="Status codes">the section called “Status codes”</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="log-instruction"></a>log</h3></div></div></div><a id="idm46227490775840" class="indexterm"></a><p>The log instruction sends an arbitrary string for debugging purposes. This instruction
+        will be ignored by Guacamole clients, but can be seen in protocol dumps if such dumps become
+        necessary. Sending a log instruction can help add context when searching for the cause of a
+        fault in protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>An arbitrary, human-readable message.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46227490769104" class="indexterm"></a><p>Reports that a user on the current connection has moved the mouse to the given
+        coordinates.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-nop-instruction"></a>nop</h3></div></div></div><a id="idm46227490760720" class="indexterm"></a><p>The server "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by Guacamole clients. Its main use is as a keep-alive signal, and may be
+        sent by guacd or client plugins when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ready-instruction"></a>ready</h3></div></div></div><a id="idm46227490756416" class="indexterm"></a><p>The ready instruction sends the ID of a new connection and marks the beginning of the
+        interactive phase of a new, successful connection. The ID sent is a completely arbitrary
+        string, and has no standard format. It must be unique from all existing and future
+        connections and may not match the name of any installed protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>An arbitrary, unique identifier for the current connection. This identifier
+                    must be unique from all existing and future connections, and may not match the
+                    name of any installed protocol support (such as "vnc" or "rdp").</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-sync-instruction"></a>sync</h3></div></div></div><a id="idm46227490749456" class="indexterm"></a><p>Indicates that the given timestamp is the current timestamp as of all
+        previous operations. The client must respond to every sync instruction
+        received.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-events"></a>Client events</h2></div></div></div><a id="idm46227490743424" class="indexterm"></a><a id="idm46227490742528" class="indexterm"></a><a id="idm46227490741184" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="key-instruction"></a>key</h3></div></div></div><a id="idm46227490737456" class="indexterm"></a><p>Sends the specified key press or release event.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>keysym</code></em></span></dt><dd><p>The <a class="link" href="http://www.x.org/wiki/KeySyms" target="_top">X11
+                        keysym</a> of the key being pressed or
+                    released.</p></dd><dt><span class="term"><em class="parameter"><code>pressed</code></em></span></dt><dd><p>0 if the key is not pressed, 1 if the key is
+                    pressed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46227490728080" class="indexterm"></a><p>Sends the specified mouse movement or button press or release event (or
+        combination thereof).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The button mask, representing the pressed or released
+                    status of each mouse button.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-event-instruction"></a>size</h3></div></div></div><a id="idm46227490717632" class="indexterm"></a><p>Specifies that the client's optimal screen size has changed from what was specified during
+        the handshake, or from previously-sent "size" instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new, optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new, optimal screen height.</p></dd></dl></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix A. FAQ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Index</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/proxying-guacamole.html b/doc/1.3.0/gug/proxying-guacamole.html
new file mode 100644
index 0000000..38f340f
--- /dev/null
+++ b/doc/1.3.0/gug/proxying-guacamole.html
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Proxying Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" /><link rel="next" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Proxying Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="proxying-guacamole"></a>Chapter 4. Proxying Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#tomcat-remote-ip">Setting up the Remote IP Valve</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-nginx">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-nginx">Changing the path</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-apache">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#websocket-and-apache">Proxying the WebSocket tunnel</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-apache">Changing the path</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#disable-tunnel-logging">Disabling logging of tunnel requests</a></span></dt></dl></dd></dl></div><p>Like most web applications, Guacamole can be placed behind a reverse proxy. For production
+        deployments of Guacamole, this is <span class="emphasis"><em>highly recommended</em></span>. It provides
+        flexibility and, if your proxy is properly configured for SSL, encryption.</p><p>Proxying isolates privileged operations within native applications that can safely drop
+        those privileges when no longer needed, using Java only for unprivileged tasks. On Linux and
+        UNIX systems, a process must be running with root privileges to listen on any port under
+        1024, including the standard HTTP and HTTPS ports (80 and 443 respectively). If the servlet
+        container instead listens on a higher port, such as the default port 8080, it can run as a
+        reduced-privilege user, allowing the reverse proxy to bear the burden of root privileges. As
+        a native application, the reverse proxy can make system calls to safely drop root privileges
+        once the port is open; a Java application like Tomcat cannot do this.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preparing-servlet-container"></a>Preparing your servlet container</h2></div></div></div><p>Your servlet container is most likely already configured to listen for HTTP
+            connections on port 8080 as this is the default. If this is the case, and you can
+            already access Guacamole over port 8080 from a web browser, you need not make any
+            further changes to its configuration.</p><p>If you <span class="emphasis"><em>have</em></span> changed this, perhaps with the intent of proxying
+            Guacamole over AJP, <span class="emphasis"><em>change it back</em></span>. Using Guacamole over AJP is
+            unsupported as it is known to cause problems, namely:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>WebSocket will not work over AJP, forcing Guacamole to fallback to HTTP,
+                    possibly resulting in reduced performance.</p></li><li class="listitem"><p>Apache 2.4.3 and older does not support the HTTP PATCH method over AJP,
+                    preventing the Guacamole management interface from functioning properly.</p></li></ol></div><p>The connector entry within <code class="filename">conf/server.xml</code> should look like
+            this:</p><div class="informalexample"><pre class="programlisting">&lt;Connector port="8080" protocol="HTTP/1.1" 
+           connectionTimeout="20000"
+           URIEncoding="UTF-8"
+           redirectPort="8443" /&gt;</pre></div><p>Be sure to specify the <code class="code">URIEncoding="UTF-8"</code> attribute as above to ensure
+            that connection names, user names, etc. are properly received by the web application. If
+            you will be creating connections that have Cyrillic, Chinese, Japanese, or other
+            non-Latin characters in their names or parameter values, this attribute is
+            required.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tomcat-remote-ip"></a>Setting up the Remote IP Valve</h3></div></div></div><p>By default, when Tomcat is behind a reverse proxy, the remote IP address of the
+                client that it sees is that of the proxy rather than the original client.  In order
+                to allow applications hosted within Tomcat, like Guacamole, to see the actual IP
+                address of the client, you have to configure both the reverse proxy and Tomcat.</p><p>Because the remote IP address in Guacamole is used for auditing of user logins and
+                connections and could potentially be used for authentication, it is important that you
+                are either in direct control of the proxy server or you explicitly trust it.  Passing
+                the remote IP address is done using the <code class="code">X-Forwarded-For</code> header, and,
+                as with most HTTP headers, attackers can attempt to spoof this header in order to
+                manipulate the behavior of the web server, gain unauthorized access to the system,
+                or attempt to disguise the host or IP address they are coming from.</p><p>One final caveat: This may not work as expected if there are other upstream proxy
+                servers between your reverse proxy and the clients access Guacamole.  Other proxies
+                or firewalls can mask the IP address of the client, and if the configuration of
+                those is not within your control you may end up with multiple clients appearing to
+                come from the same IP address or host.  Make sure you take this into account when
+                configuring the system and looking at the data provided.</p><p>Configuring Tomcat to pass through the remote IP address provided by the reverse
+                proxy in the <code class="code">X-Forwarded-For</code> header requires the configuration of what
+                Tomcat calls a Valve.  In this case, it is the <a class="link" href="https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Remote_IP_Valve" target="_top">
+                    <code class="code">RemoteIpValve</code></a> and is configured in the
+                <code class="filename">conf/server.xml</code> file, in the <code class="code">&lt;Host&gt;</code> section:
+            </p><div class="informalexample"><pre class="programlisting">&lt;Valve className="org.apache.catalina.valves.RemoteIpValve"
+               internalProxies="127.0.0.1"
+               remoteIpHeader="x-forwarded-for"
+               remoteIpProxiesHeader="x-forwarded-by"
+               protocolHeader="x-forwarded-proto" /&gt;</pre></div><p>The <em class="parameter"><code>internalProxies</code></em> value should be set to the IP address
+                or addresses of any and all reverse proxy servers that will be accessing this Tomcat
+                instance directly.  Often it is run on the same system that runs Tomcat, but in other
+                cases (for example, when running Docker), it may be on a different system/container and
+                may need to be set to the actual IP address of the reverse proxy system.  Only proxy
+                servers listed in the <em class="parameter"><code>internalProxies</code></em> or
+                <em class="parameter"><code>trustedProxies</code></em> parameters will be allowed to manipulate the
+                remote IP address information.  The other parameters in this configuration line allow
+                you to control which headers coming from the proxy server(s) are used for various
+                remote host information.  They are as follows:
+            </p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remoteIpHeader</code></em></td><td>
+                                <p>The header that is queried to learn the client IP address
+                                    of the client that originated the request.  The standard
+                                    value is <code class="code">X-Forwarded-For</code>, but can
+                                    be configured to any header you like.  The IP address in this
+                                    header will be available to Java applications in the
+                                    <code class="code">request.getRemoteAddr()</code> method.</p>
+                            </td></tr><tr><td><em class="parameter"><code>remoteIpProxiesHeader</code></em></td><td>
+                                <p>The header that is queried to learn the IP address of the
+                                    proxy server that forwarded the request.  The default value
+                                    is <code class="code">X-Forwarded-By</code>, but can be configured to
+                                    any header that fits your environment.  This value will only
+                                    be allowed by the valve if the proxy used is listed in the
+                                    <em class="parameter"><code>trustedProxies</code></em> parameter.  Otherwise
+                                    this header will not be available.</p>
+                            </td></tr><tr><td><em class="parameter"><code>protocolHeader</code></em></td><td>
+                                <p>The header that is queried to determine the protocol
+                                    that the client used to connect to the service.  The default
+                                    value is <code class="code">X-Forwarded-Proto</code>, but can be
+                                    configured to fit your environment.</p>
+                            </td></tr></tbody></table></div><p>In addition to configuring Tomcat to properly handle these headers, you also may
+                need to configure your reverse proxy appropriately to send the headers.  You can
+                find instructions for this in <a class="xref" href="proxying-guacamole.html#nginx" title="Nginx">the section called “Nginx”</a> - the Apache web server
+                passes it through by default.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="nginx"></a>Nginx</h2></div></div></div><p>Nginx can be used as a reverse proxy, and supports WebSocket out-of-the-box <a class="link" href="http://nginx.com/blog/websocket-nginx/" target="_top">since version 1.3</a>. Both
+            Apache and Nginx require some additional configuration for proxying of WebSocket to work
+            properly.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-nginx"></a>Proxying Guacamole</h3></div></div></div><p>Nginx does support WebSocket for proxying, but requires that the "Connection" and
+                "Upgrade" HTTP headers are set explicitly due to the nature of the WebSocket
+                protocol. From the Nginx documentation:</p><div class="blockquote"><blockquote class="blockquote"><p>NGINX supports WebSocket by allowing a tunnel to be set up between a client
+                    and a back-end server. For NGINX to send the Upgrade request from the client to
+                    the back-end server, Upgrade and Connection headers must be set explicitly.
+                    ...</p></blockquote></div><p>The proxy configuration belongs within a dedicated <a class="link" href="http://nginx.org/en/docs/http/ngx_http_core_module.html#location" target="_top"><code class="code">location</code></a> block, declaring the backend hosting Guacamole
+                and explicitly specifying the "Connection" and "Upgrade" headers mentioned
+                earlier:</p><div class="informalexample"><pre class="programlisting">location /guacamole/ {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    access_log off;
+}</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><p>Related to the RemoteIpValve configuration for tomcat, documented in
+                <a class="xref" href="proxying-guacamole.html#tomcat-remote-ip" title="Setting up the Remote IP Valve">the section called “Setting up the Remote IP Valve”</a>, the
+                <code class="code">proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</code> line is
+                important if you want the <code class="code">X-Forwarded-For</code> header to be passed through
+                to the web application server and available to applications running inside it.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget to specify "<code class="code">proxy_buffering
+                        off</code>".</em></span></p><p>Most proxies, including Nginx, will buffer all data sent over the connection,
+                    waiting until the connection is closed before sending that data to the client.
+                    As Guacamole's HTTP tunnel relies on streaming data to the client over an open
+                    connection, excessive buffering will effectively block Guacamole connections,
+                    rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option "<code class="code">proxy_buffering off</code>" is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-nginx"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Nginx under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration will need to be altered slightly to
+                take cookies into account. Although Guacamole does not rely on receipt of cookies in
+                general, cookies are required for the proper operation of the HTTP tunnel. If the
+                HTTP tunnel is used, and cookies cannot be set, users may be unexpectedly denied
+                access to their connections.</p><p>Regardless of the location specified for the proxy, cookies set by Guacamole will
+                be set using its own absolute path within the backend (<code class="uri">/guacamole/</code>). If
+                this path differs from that used by Nginx, the path in the cookie needs to be
+                modified using <code class="code">proxy_cookie_path</code>:</p><div class="informalexample"><pre class="programlisting">location /<em class="replaceable"><code>new-path/</code></em> {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    <span class="emphasis"><em>proxy_cookie_path /guacamole/ /<em class="replaceable"><code>new-path/</code></em>;</em></span>
+    access_log off;
+}</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="apache"></a>Apache and <span class="package">mod_proxy</span></h2></div></div></div><p>Apache supports reverse proxy configurations through <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy.html" target="_top"><span class="package">mod_proxy</span></a>. Apache 2.4.5 and later also support
+            proxying of WebSocket through a sub-module called <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html" target="_top"><span class="package">mod_proxy_wstunnel</span></a>. Both of these modules will need
+            to be enabled for proxying of Guacamole to work properly.</p><p>Lacking <span class="package">mod_proxy_wstunnel</span>, it is still possible to proxy
+            Guacamole, but Guacamole will be unable to use WebSocket. It will instead fallback to
+            using the HTTP tunnel, resulting in reduced performance.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-apache"></a>Proxying Guacamole</h3></div></div></div><p>Configuring Apache to proxy HTTP requests requires using the
+                    <em class="parameter"><code>ProxyPass</code></em> and <em class="parameter"><code>ProxyPassReverse</code></em>
+                directives, which are provided by the <span class="package">mod_proxy</span> module. These
+                directives describe how HTTP traffic should be routed to the web server behind the
+                proxy:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+&lt;/Location&gt;</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget the <code class="option">flushpackets=on</code>
+                        option.</em></span></p><p>Most proxies, including <span class="package">mod_proxy</span>, will buffer all data
+                    sent over the connection, waiting until the connection is closed before sending
+                    that data to the client. As Guacamole's HTTP tunnel relies on streaming data to
+                    the client over an open connection, excessive buffering will effectively block
+                    Guacamole connections, rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option <code class="option">flushpackets=on</code> is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="websocket-and-apache"></a>Proxying the WebSocket tunnel</h3></div></div></div><p>Apache will not automatically proxy WebSocket connections, but you can proxy them
+                separately with Apache 2.4.5 and later using <span class="package">mod_proxy_wstunnel</span>.
+                After enabling <span class="package">mod_proxy_wstunnel</span> a secondary
+                    <code class="code">Location</code> section can be added which explicitly proxies the
+                Guacamole WebSocket tunnel, located at
+                <code class="uri">/guacamole/websocket-tunnel</code>:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>Lacking this, Guacamole will still work by using normal HTTP, but network latency
+                will be more pronounced with respect to user input, and performance may be
+                lower.</p><div class="important"><h3 class="title">Important</h3><p>The <code class="code">Location</code> section for <code class="uri">/guacamole/websocket-tunnel</code>
+                    must be placed after the <code class="code">Location</code> section for the rest of
+                    Guacamole.</p><p>Apache evaluates all Location sections, giving priority to the last section
+                    that matches. If the <code class="uri">/guacamole/websocket-tunnel</code> section comes first,
+                    the section for <code class="uri">/guacamole/</code> will match instead, and WebSocket will
+                    not be proxied correctly.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-apache"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Apache under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration required for Apache will be slightly
+                different than the examples above due to cookies.</p><p>Guacamole does not rely on receipt of cookies for tracking whether a user is
+                logged in, but cookies are required for the proper operation of the HTTP tunnel. If
+                the HTTP tunnel is used, and cookies cannot be set, users will be unexpectedly
+                denied access to connections they legitimately should have access to.</p><p>Cookies are set using the absolute path of the web application
+                    (<code class="uri">/guacamole/</code>). If this path differs from that used by Apache, the
+                path in the cookie needs to be modified using the
+                    <em class="parameter"><code>ProxyPassReverseCookiePath</code></em> directive:</p><div class="informalexample"><pre class="programlisting">&lt;Location /<em class="replaceable"><code>new-path/</code></em>&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+    <span class="emphasis"><em>ProxyPassReverseCookiePath /guacamole/ /<em class="replaceable"><code>new-path/</code></em></em></span>
+&lt;/Location&gt;
+
+&lt;Location /<em class="replaceable"><code>new-path</code></em>/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>This directive is not needed for the WebSocket section, as it is not applicable.
+                Cookies are only used by Guacamole within the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="disable-tunnel-logging"></a>Disabling logging of tunnel requests</h3></div></div></div><p>If WebSocket is unavailable, Guacamole will fallback to using an HTTP-based
+                tunnel. The Guacamole HTTP tunnel works by transferring a continuous stream of data
+                over multiple short-lived streams, each associated with a separate HTTP request. By
+                default, Apache will log each of these requests, resulting in a rather bloated
+                access log.</p><p>There is little value in a log file filled with identical tunnel requests, so it
+                is recommended to explicitly disable logging of those requests. Apache does provide
+                a means of matching URL patterns and setting environment variables based on whether
+                the URL matches. Logging can then be restricted to requests which lack this
+                environment variable:</p><div class="informalexample"><pre class="programlisting">SetEnvIf Request_URI "^<em class="replaceable"><code>/guacamole</code></em>/tunnel" dontlog
+CustomLog  <em class="replaceable"><code>/var/log/apache2/guac.log</code></em> common env=!dontlog</pre></div><p>Note that if you are serving Guacamole under a path different from
+                    <code class="uri">/guacamole/</code>, you will need to change the value of
+                    <em class="parameter"><code>Request_URI</code></em> above accordingly.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Installing Guacamole with Docker </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Configuring Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/radius-auth.html b/doc/1.3.0/gug/radius-auth.html
new file mode 100644
index 0000000..956f7f6
--- /dev/null
+++ b/doc/1.3.0/gug/radius-auth.html
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. RADIUS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="saml-auth.html" title="Chapter 13. SAML Authentication" /><link rel="next" href="adhoc-connections.html" title="Chapter 15. Ad-hoc Connections" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14. RADIUS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="saml-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="radius-auth"></a>Chapter 14. RADIUS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></div><a id="idm46227496380144" class="indexterm"></a><p>Guacamole supports delegating authentication to a RADIUS service, such as FreeRADIUS, to
+        validate username and password combinations, and to support multi-factor authentication.  This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="radius-downloading"></a>Downloading the RADIUS authentication extension</h2></div></div></div><p>The RADIUS extension depends on software that is covered by a LGPL license, which is
+            incompatible with the Apache 2.0 license under which Guacamole is licensed.  Due to this
+            dependency, the Guacamole project cannot distribute binary versions of the RADIUS extension.
+            If you want to use this extension you will need to build the code - or at least the RADIUS
+            extension yourself.  Build instructions can be found in the section
+            <a class="xref" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively">Chapter 2, <em>Installing Guacamole natively</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-radius-auth"></a>Installing RADIUS authentication</h2></div></div></div><p>The RADIUS extension must be explicitly enabled during build time in order to generate
+            the binaries and resulting JAR file.  This is done by adding the flag <code class="option">-Plgpl-extensions</code>
+            to the Maven command line during the build, and should result in the output below:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn clean package -Plgpl-extensions</code></strong>
+<code class="computeroutput">[INFO] --- maven-assembly-plugin:2.5.3:single (make-source-archive) @ guacamole-client ---
+[INFO] Reading assembly descriptor: project-assembly.xml
+[INFO] Building tar: /home/guac/guacamole-client/target/guacamole-client-1.3.0.tar.gz
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common .................................. SUCCESS [6.037s]
+[INFO] guacamole-ext ..................................... SUCCESS [5.382s]
+[INFO] guacamole-common-js ............................... SUCCESS [0.751s]
+[INFO] guacamole ......................................... SUCCESS [9.767s]
+[INFO] guacamole-auth-cas ................................ SUCCESS [2.811s]
+[INFO] guacamole-auth-duo ................................ SUCCESS [2.441s]
+[INFO] guacamole-auth-header ............................. SUCCESS [1.875s]
+[INFO] guacamole-auth-jdbc ............................... SUCCESS [0.277s]
+[INFO] guacamole-auth-jdbc-base .......................... SUCCESS [2.144s]
+[INFO] guacamole-auth-jdbc-mysql ......................... SUCCESS [5.637s]
+[INFO] guacamole-auth-jdbc-postgresql .................... SUCCESS [5.465s]
+[INFO] guacamole-auth-jdbc-sqlserver ..................... SUCCESS [5.398s]
+[INFO] guacamole-auth-jdbc-dist .......................... SUCCESS [0.824s]
+[INFO] guacamole-auth-ldap ............................... SUCCESS [2.743s]
+[INFO] guacamole-auth-noauth ............................. SUCCESS [0.964s]
+[INFO] guacamole-auth-openid ............................. SUCCESS [2.533s]
+[INFO] guacamole-example ................................. SUCCESS [0.888s]
+[INFO] guacamole-playback-example ........................ SUCCESS [0.628s]
+[INFO] guacamole-auth-radius ............................. SUCCESS [17.729s]
+[INFO] guacamole-client .................................. SUCCESS [5.645s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 1:20.134s
+[INFO] Finished at: Wed Jan 31 09:45:41 EST 2018
+[INFO] Final Memory: 47M/749M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>After the build completes successfully, the extension will be in the
+            <code class="filename">extensions/guacamole-auth-radius/target/</code> directory, and will be
+            called guacamole-auth-radius-1.3.0.jar.  This extension file can be copied to
+            the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+            <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+            your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+            proceeding.</em></span></p><p>Extensions are loaded in alphabetical order, and authentication is performed
+            in the order in which the extensions were loaded.  If you are stacking the
+            RADIUS extension with another extension, like the JDBC extension, in order to
+            store connection information, you may need to change the name of the RADIUS
+            extension such that it is evaluated prior to the JDBC extension - otherwise
+            an authentication failure in one of the previous modules may block the RADIUS
+            module from ever being evaluated.</p><p>To install the RADIUS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-radius-1.3.0.jar</code> into
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use RADIUS authentication, as described
+                    below.</p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guac-radius-config"></a>Configuring Guacamole for RADIUS authentication</h2></div></div></div><a id="idm46227496742560" class="indexterm"></a><a id="idm46227496741648" class="indexterm"></a><p>This extension provides several configuration properties in order 
+            to communicate properly with the RADIUS server to which it needs to authenticate.  It is 
+            important that you know several key pieces of information about the RADIUS server - 
+            at a minimum, the server name or IP, the authentication port, the authentication 
+            protocol in use by the server, and the shared secret for the RADIUS client.  If you 
+            are responsible for the RADIUS server, you'll need to properly configure these items 
+            to get Guacamole to authenticate properly.  If you're not responsible for the RADIUS 
+            server you will need to work with the administrator to get all of the necessary 
+            configuration items for the server.  These items will need to be configured in the 
+            <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a> 
+            file.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">radius-hostname</span></span></dt><dd><p>The RADIUS server to authenticate against.  If not specified, 
+                        localhost will be used.</p></dd><dt><span class="term"><span class="property">radius-auth-port</span></span></dt><dd><p>The RADIUS authentication port on which the RADIUS service is
+                        is listening.  If not specified, the default of 1812 will be
+                        used.</p></dd><dt><span class="term"><span class="property">radius-shared-secret</span></span></dt><dd><p>The shared secret to use when talking to the RADIUS server.  This
+                        parameter is required and the extension will not load if this is not
+                        specified.
+                        </p></dd><dt><span class="term"><span class="property">radius-auth-protocol</span></span></dt><dd><p>The authentication protocol to use when talking to the RADIUS server.
+                        This parameter is required for the extension to operate.  Supported
+                        values are: pap, chap, mschapv1, mschapv2, eap-md5, eap-tls, and eap-ttls.
+                        Support for PEAP is implemented inside the extension, but, due to a regression
+                        in the JRadius implementation, it is currently broken.  Also, if you specify
+                        eap-ttls you will also need to specify the
+                        <span class="property">radius-eap-ttls-inner-protocol</span> parameter in order to
+                        properly configure the protocol used inside the EAP TTLS tunnel.</p></dd><dt><span class="term"><span class="property">radius-key-file</span></span></dt><dd><p>The combination certificate and private key pair to use for TLS-based
+                        RADIUS protocols that require a client-side certificate.  This parameter
+                        should specify the absolute path to the file.  By default the extension
+                        will look for a file called radius.key in the GUACAMOLE_HOME directory.
+                        </p></dd><dt><span class="term"><span class="property">radius-key-type</span></span></dt><dd><p>The file type of the keystore specified by the <span class="property">radius-key-file</span> 
+                        parameter.  Valid keystore types are pem, jceks, jks, and pkcs12.
+                        If not specified, this defaults to pkcs12, the default used by 
+                        the JRadius library.</p></dd><dt><span class="term"><span class="property">radius-key-password</span></span></dt><dd><p>The password of the private key specified in the 
+                        <span class="property">radius-key-file</span> parameter.  By default the extension   
+                        will not use any password when trying to open the key file.</p></dd><dt><span class="term"><span class="property">radius-ca-file</span></span></dt><dd><p>The absolute path to the file that stores the certificate authority
+                        certificates for encrypted connections to the RADIUS server.  By default
+                        a file with the name ca.crt in the GUACAMOLE_HOME directory will be used.
+                        </p></dd><dt><span class="term"><span class="property">radius-ca-type</span></span></dt><dd><p>The file type of keystore used for the certificate authority.  Valid formats are
+                        pem, jceks, jks, and pkcs12.  If not specified this defaults to pem.</p></dd><dt><span class="term"><span class="property">radius-ca-password</span></span></dt><dd><p>The password used to protect the certificate authority store, if
+                        any.  If unspecified the extension will attempt to read the CA
+                        store without any password.</p></dd><dt><span class="term"><span class="property">radius-trust-all</span></span></dt><dd><p>This parameter controls whether or not the RADIUS extension
+                    should trust all certificates or verify them against known good
+                    certificate authorities.  Set to true to allow the RADIUS server
+                    to connect without validating certificates.  The default is false,
+                    which causes certificates to be validated.</p></dd><dt><span class="term"><span class="property">radius-retries</span></span></dt><dd><p>The number of times the client will retry the connection to the 
+                        RADIUS server and not receive a response before giving up.  By default
+                        the client will try the connection at most 5 times.</p></dd><dt><span class="term"><span class="property">radius-timeout</span></span></dt><dd><p>The timeout for a RADIUS connection in seconds.  By default the client
+                        will wait for a response from the server for at most 60 seconds.</p></dd><dt><span class="term"><span class="property">radius-eap-ttls-inner-protocol</span></span></dt><dd><p>When EAP-TTLS is used, this parameter specifies the inner (tunneled)
+                        protocol to use talking to the RADIUS server.  It is required when the
+                        <span class="property">radius-auth-protocol</span> parameter is set to eap-ttls.
+                        If the <span class="property">radius-auth-protocol</span> value is set to something
+                        other than eap-ttls, this parameter has no effect and will be ignored. Valid
+                        options for this are any of the values for
+                        <span class="property">radius-auth-protocol</span>, except for eap-ttls.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="completing-radius-install"></a>Completing the installation</h2></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+            newly-installed extensions during startup, so your servlet container will need to be
+            restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+            disconnect all active users, so be sure that it is safe to do so prior to
+            attempting installation.</em></span> When ready, restart your servlet container
+            and give the new authentication a try.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="saml-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13. SAML Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. Ad-hoc Connections</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/saml-auth.html b/doc/1.3.0/gug/saml-auth.html
new file mode 100644
index 0000000..1e50efd
--- /dev/null
+++ b/doc/1.3.0/gug/saml-auth.html
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. SAML Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" /><link rel="next" href="radius-auth.html" title="Chapter 14. RADIUS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. SAML Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="saml-auth"></a>Chapter 13. SAML Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="saml-auth.html#saml-downloading">Downloading the SAML authentication extension</a></span></dt><dt><span class="section"><a href="saml-auth.html#installing-saml-auth">Installing SAML authentication</a></span></dt><dd><dl><dt><span class="section"><a href="saml-auth.html#guac-saml-config">Configuring Guacamole for SAML Authentication</a></span></dt><dt><span class="section"><a href="saml-auth.html#completing-saml-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46227496333168" class="indexterm"></a><p>SAML is a widely implemented and used Single Sign On (SSO) provider that allows
+		applications and services to authenticate in a standard way, and brokers those
+		authentication requests to one or more back-end authentication providers.  The SAML
+		authentication extension allows Guacamole to redirect to a SAML Identity Provider (IdP)
+		for authentication and user services.  This module does not provide any capability
+		for storing or retrieving connections, and must be layered with other authentication
+		extensions that provide connection management.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="saml-downloading"></a>Downloading the SAML authentication extension</h2></div></div></div><p>The SAML authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The SAML authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-saml-1.3.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-saml-auth"></a>Installing SAML authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the SAML authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-saml-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use SAML authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-saml-config"></a>Configuring Guacamole for SAML Authentication</h3></div></div></div><a id="idm46227496841600" class="indexterm"></a><a id="idm46227496840688" class="indexterm"></a><p>The SAML authentication extension provides several configuration properties
+                to set it up to talk to the IdP.  The SAML IdP also must be configured with
+                Guacamole as a Service Provider (SP).  Configuration of the SAML IdP is beyond
+                the scope of this document, and will vary widely based on the IdP in use.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">saml-idp-metadata-url</span></span></dt><dd><p>The URI of the XML metadata file that from the
+                            SAML Identity Provider that contains all of the
+                            information the SAML extension needs in order to
+                            know how to authenticate with the IdP. This URI can
+                            either be a remote server (e.g. https://) or a local
+                            file on the filesystem (e.g. file://). Often the
+                            metadata file contains most of the required
+                            properties for SAML authentication and the other
+                            parameters are not required.</p></dd><dt><span class="term"><span class="property">saml-idp-url</span></span></dt><dd><p>The base URL of the SAML IdP. This is the URL that
+                            the SAML authentication extension will use to redirect
+                            when requesting SAML authentication. If the
+                            <span class="property">saml-idp-metadata</span> property is
+                            provided, this parameter will be ignored. If the metadata
+                            file is not provided this property is required.</p></dd><dt><span class="term"><span class="property">saml-entity-id</span></span></dt><dd><p>The entity ID of the Guacamole SAML client, which is
+                            generally the URL of the Guacamole server, but is not
+                            required to be so. This property is required if
+                            either the <span class="property">saml-idp-metadata-url</span>
+                            property is not specified, or if the provided
+                            metadata file does not contain the SAML SP Entity
+                            ID for Guacamole Client.</p></dd><dt><span class="term"><span class="property">saml-callback-url</span></span></dt><dd><p>The URL that the IdP will use once authentication has
+                            succeeded to return to the Guacamole web application and
+                            provide the authentication details to the SAML extension.
+                            The SAML extension currently only supports callback as a
+                            POST operation to this callback URL. This property
+                            is required.</p></dd><dt><span class="term"><span class="property">saml-strict</span></span></dt><dd><p>Require strict security checks during SAML logins.
+                            This will insure that valid certificates are
+                            present for all interactions with SAML servers and
+                            fail SAML authentication if security restrictions
+                            are violated. This property is optional, and will
+                            default to true, requiring strict security checks.
+                            This property should only be set to false in
+                            non-production environments during testing of
+                            SAML authentication.</p></dd><dt><span class="term"><span class="property">saml-debug</span></span></dt><dd><p>Enable additional logging within the supporting
+                            SAML library that can assist in tracking down issues
+                            during SAML logins. This property is optional, and 
+                            will default to false (no debugging).</p></dd><dt><span class="term"><span class="property">saml-compress-request</span></span></dt><dd><p>Enable compression of the HTTP requests sent to
+                            the SAML IdP. This property is optional and will
+                            default to true (compression enabled).</p></dd><dt><span class="term"><span class="property">saml-compress-response</span></span></dt><dd><p>Request that the SAML response returned by the
+                            IdP be compressed. This property is optional and
+                            will default to true (compression will be requested).
+                        </p></dd><dt><span class="term"><span class="property">saml-group-attribute</span></span></dt><dd><p>The name of the attribute provided by the SAML IdP
+                            that contains group membership of the user. These
+                            groups will be parsed and used to map group
+                            membership of the user logging in, which can be used
+                            for permissions management within Guacamole Client,
+                            particularly when layered with other authentication
+                            modules. This property is optional, and defaults to
+                            "groups".</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-saml-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before SAML authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 12. OpenID Connect Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. RADIUS Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/totp-auth.html b/doc/1.3.0/gug/totp-auth.html
new file mode 100644
index 0000000..f414626
--- /dev/null
+++ b/doc/1.3.0/gug/totp-auth.html
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. TOTP two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" /><link rel="next" href="header-auth.html" title="Chapter 10. HTTP header authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9. TOTP two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="totp-auth"></a>Chapter 9. TOTP two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-enrollment">Enrollment</a></span></dt></dl></dd><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></span></dt><dt><span class="section"><a href="totp-auth.html#completing-totp-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46227497788768" class="indexterm"></a><p>Guacamole supports TOTP as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website, providing
+            <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">base requirements for key storage and
+            enrollment</a> are met. The TOTP authentication extension allows users to be
+        additionally verified against a user-specific and secret key generated during <a class="link" href="totp-auth.html#totp-enrollment" title="Enrollment">enrollment of their authentication device</a>.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-prerequisites"></a>Prerequisites</h2></div></div></div><p>The enrollment process used by Guacamole's TOTP support needs to be able to store an
+            automatically-generated key within the user's account. Another extension must be
+            installed which supports storage of arbitrary data from other extensions.
+                <span class="emphasis"><em>Currently the only extensions provided with Guacamole which support this
+                kind of storage are the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication
+                    extensions</a>.</em></span></p><p>It is thus recommended that authentication against a database be fully configured
+            prior to setting up TOTP. Instructions walking through the setup of database
+            authentication for Guacamole are provided in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-architecture"></a>How TOTP works with Guacamole</h2></div></div></div><p>Guacamole provides support for TOTP as a second authentication factor. To make use of
+            the TOTP authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole
+            prompt the user to further verify their identity with an authentication code:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification using TOTP succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="totp-enrollment"></a>Enrollment</h3></div></div></div><p>If the user does not yet have a TOTP key associated with their account (they have
+                not yet completed enrollment), they will be required to enroll an authentication
+                device after passing the first authentication factor. A QR code containing an
+                automatically-generated key will be presented to the user to be scanned by their
+                authentication app or device:</p><div class="mediaobject"><img src="images/totp-enroll.png" width="360" /></div><p>If the authentication device does not support scanning QR codes for enrollment,
+                the details within the QR code can be revealed by clicking the "Show" link next to
+                the "Details" header. These values can then be entered manually:</p><div class="mediaobject"><img src="images/totp-enroll-detail.png" width="360" /></div><p>Enrollment is completed once the user enters a valid authentication code generated
+                by their device using the provided key.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-downloading"></a>Downloading the TOTP extension</h2></div></div></div><p>The TOTP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The TOTP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+            <code class="filename">guacamole-auth-totp-1.3.0.jar</code>, which must ultimately be placed in
+                <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-totp-auth"></a>Installing TOTP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the TOTP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-totp-1.3.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use TOTP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the TOTP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-totp-config"></a>Configuring Guacamole for TOTP</h3></div></div></div><a id="idm46227497962448" class="indexterm"></a><a id="idm46227497961552" class="indexterm"></a><p>With the exception of <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">the storage and
+                    permission requirements described above</a>, the TOTP extension should work
+                out-of-the-box without any additional configuration. Defaults have been chosen for
+                all configuration parameters such that the TOTP extension will be compatible with
+                Google Authenticator and similar, popular TOTP implementations.</p><p>If your intended authentication application or device has different requirements,
+                or you wish to override the defaults, additional properties may be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">totp-issuer</span></span></dt><dd><p>The human-readable name of the entity issuing user accounts. If not
+                            specified, "Apache Guacamole" will be used by default.</p></dd><dt><span class="term"><span class="property">totp-digits</span></span></dt><dd><p>The number of digits which should be included in each generated TOTP
+                            code. Legal values are 6, 7, or 8. By default, 6-digit codes are
+                            generated.</p></dd><dt><span class="term"><span class="property">totp-period</span></span></dt><dd><p>The duration that each generated code should remain valid, in seconds.
+                            By default, each code remains valid for 30 seconds.</p></dd><dt><span class="term"><span class="property">totp-mode</span></span></dt><dd><p>The hash algorithm that should be used to generate TOTP codes. Legal
+                            values are "sha1", "sha256", and "sha512". By default, "sha1" is
+                            used.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-totp-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before TOTP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the TOTP extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 8. Duo two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. HTTP header authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/troubleshooting.html b/doc/1.3.0/gug/troubleshooting.html
new file mode 100644
index 0000000..c335bd3
--- /dev/null
+++ b/doc/1.3.0/gug/troubleshooting.html
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. Troubleshooting</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="administration.html" title="Chapter 17. Administration" /><link rel="next" href="developers-guide.html" title="Part II. Developer's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. Troubleshooting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="troubleshooting"></a>Chapter 18. Troubleshooting</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#idm46227493305264">No graphics appear</a></span></dt><dt><span class="section"><a href="troubleshooting.html#idm46227493299264">Connections involving Unicode don't work</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#guacd-errors">guacd errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-vnc-errors">libguac-client-vnc errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-rdp-errors">libguac-client-rdp errors</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#user-mapping-xml-errors"><code class="filename">user-mapping.xml</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-properties-errors"><code class="filename">guacamole.properties</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-auth-errors">Authentication errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-tunnel-errors">Tunnel errors</a></span></dt></dl></dd></dl></div><a id="idm46227493309968" class="indexterm"></a><a id="idm46227493309072" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="not-working"></a>It isn't working</h2></div></div></div><p>If Guacamole isn't working, chances are something isn't configured
+            properly, or something is wrong with the network. Thankfully,
+            Guacamole and all its components log errors thoroughly, so the
+            problem can usually be traced down fairly easily if you know where
+            to look. Troubleshooting Guacamole usually boils down to checking
+            either syslog or your servlet container's logs (likely
+            Tomcat).</p><p>Failing all that, you can always post a question in the forums, or
+            if you truly feel you've discovered a bug, you can create a new
+            ticket in Trac. Beware that if something isn't working, and there
+            are errors in the logs describing the problem, it is usually not a
+            bug, and the best place to handle such things is through consulting
+            this guide or the forums.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227493305264"></a>No graphics appear</h3></div></div></div><a id="idm46227493304528" class="indexterm"></a><a id="idm46227493303664" class="indexterm"></a><p>If you <span class="emphasis"><em>never</em></span> see any graphics appear, or you see "Connecting,
+                waiting for first update..." for a while and then are disconnected, the most likely
+                cause is a proxy.</p><p>Guacamole relies on streaming data to you over a persistent connection. If
+                software between Guacamole and your browser is buffering all incoming data, such as
+                a proxy, this data never makes it to your browser, and you will just see it wait
+                indefinitely. Eventually, thinking the client has disconnected, Guacamole closes the
+                connection, at which point the proxy finally flushes its buffer and you see
+                graphics! ... just in time to see it disconnect.</p><p>The solution here is to either modify your proxy settings to flush packets
+                immediately as they are received, or to use HTTPS. Proxies are required to pass
+                HTTPS through untouched, and this usually solves the problem.</p><p>Even if you aren't aware of any proxy, there may be one in place. Corporate
+                firewalls very often incorporate proxies. Antivirus software may buffer incoming
+                data until the connection is closed and the data is scanned for viruses.
+                Virtualization software may detect HTTP data and buffer the connection just like a
+                proxy. If all else fails, try HTTPS - it's the only secure way to do this
+                anyway.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227493299264"></a>Connections involving Unicode don't work</h3></div></div></div><a id="idm46227493298496" class="indexterm"></a><a id="idm46227493297600" class="indexterm"></a><a id="idm46227493296704" class="indexterm"></a><p>If you are using Tomcat, beware that you <span class="emphasis"><em>must</em></span> set the
+                    <code class="code">URIEncoding="UTF-8"</code> attribute on all connectors in your
+                    <code class="filename">server.xml</code>. If you are using a different servlet container,
+                you need to find out whether it requires special options to support UTF-8 in URIs,
+                and change the required settings to enable such support.</p><p>Without UTF-8 support enabled for URIs, Unicode characters in connection names
+                will not be received properly when connecting, and Guacamole will thing the
+                connection you requested does not exist. Similarly, if you are using the built-in
+                administration interface, parameters involving Unicode characters will not save
+                properly without these options enabled.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="syslog"></a>syslog</h2></div></div></div><a id="idm46227493351808" class="indexterm"></a><p>guacd and libguac-based programs (such as all client plugins) log
+            informational messages and errors to syslog. Specifically, guacd
+            uses syslog, and it exposes this logging facility to everything it
+            loads (client plugins), thus if the VNC or RDP support plugins
+            encounter errors, they log those errors over the logging facilities
+            exposed by guacd, in this case syslog.</p><p>Once you guacd is started, you'll see entries like the following
+            in syslog:</p><div class="informalexample"><pre class="screen">guacd[19663]: Guacamole proxy daemon (guacd) version 0.7.0
+guacd[19663]: Unable to bind socket to host ::1, port 4823: Address family
+              not supported by protocol
+guacd[19663]: Successfully bound socket to host 127.0.0.1, port 4823
+guacd[19663]: Exiting and passing control to PID 19665
+guacd[19665]: Exiting and passing control to PID 19666
+guacd[19666]: Listening on host 127.0.0.1, port 4823</pre></div><p>Each entry relevant to Guacamole has the prefix "guacd", denoting
+            the program that produced the entry, followed by the process ID,
+            followed by the message. The entries above show guacamole starting
+            successfully and listening on a non-default port 4823.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-errors"></a>guacd errors</h3></div></div></div><a id="idm46227493346912" class="indexterm"></a><a id="idm46227493345568" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493344224"></a>Unable to bind socket to any addresses.</h4></div></div></div><p>This means that guacd failed to start up at all because
+                    the port it wants to listen on is already taken at all
+                    addresses attempted. The details of what guacd tried will be
+                    listed in the log entries above this. To solve the problem,
+                    find what port guacd was trying to listen on (the default is
+                    4822) and check if any other service is listening on that
+                    port.</p><p>If another service is listening on the default port, you
+                    can always specify a non-standard port for guacd by using
+                    the <code class="option">-l<em class="replaceable"><code> PORT</code></em></code>
+                    option (that's a lowercase "L", not a number "1"), where
+                        <em class="replaceable"><code>PORT</code></em> is the number of the
+                    port to listen on. Beware that you will likely have to
+                    modify <code class="filename">guacamole.properties</code> so that
+                    Guacamole knows how to connect to guacd.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493340160"></a>Unable to start <em class="replaceable"><code>input</code></em>
+                    thread</h4></div></div></div><p>guacd creates two threads for each connection: one that
+                    receives input from the connected client, and the other that
+                    produces output for the client. If either of these fails to
+                    start, the above error will be logged along with the
+                    cause.</p><p>If it is the output thread that fails to start, the
+                    message will instead read: "Unable to start output
+                    thread".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493337472"></a>Client finished abnormally</h4></div></div></div><p>If the client plugin ever returns an error code, this will
+                    cause the connection to immediately terminate, with the
+                    cause of the error specific to the plugin in use. The cause
+                    should be detailed in the log messages above the error. If
+                    those log messages don't make sense, you may have found a
+                    bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493335728"></a>Could not fork()
+                    <em class="replaceable"><code>parent</code></em></h4></div></div></div><p>When guacd starts up, it immediately attempts to "fork"
+                    into the background (unless instructed otherwise). The word
+                    "fork()" above is a reference to the C function call that
+                    does this. There are several calls to this function, each of
+                    which might fail if system resources are lacking or
+                    something went wrong at a low level. If you see this
+                    message, it is probably not a bug in Guacamole, but rather a
+                    problem with the load level of your system.</p><p>This message may also appear as "Could not fork() group
+                    leader".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493333088"></a>Unable to change working directory to /</h4></div></div></div><p>One of the duties of guacd as it starts up is to change
+                    its working directory to the root directory. This is to
+                    prevent locking the current directory in case it needs to be
+                    unmounted, etc. If guacd cannot do this, this error will be
+                    logged, along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493331408"></a>Unable to redirect standard file descriptors to
+                    /dev/null</h4></div></div></div><p>As guacd starts, it also has to redirect STDOUT, STDERR,
+                    and STDIN to <code class="filename">/dev/null</code> such that
+                    attempts to use these output mechanisms do not pollute the
+                    active console. Though guacd and client plugins will use the
+                    exposed logging facilities (and thus syslog) rather than
+                    STDOUT or STDERR, libraries used by client plugins are often
+                    written only from the mindset of a typical client, and use
+                    standard output mechanisms for debug logging. Not
+                    redirecting these would result in undesired output to the
+                    console.</p><p>If guacd cannot redirect these file descriptors for any
+                    reason, this error will be logged, along with the
+                    cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493328400"></a>Error parsing given address or port:
+                        <em class="replaceable"><code>HOSTNAME</code></em></h4></div></div></div><p>If you specified a host or port to listen on via
+                    commandline options, and that host or port is actually
+                    invalid, you will see this error. Fix the corresponding
+                    option and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493326832"></a>Error opening socket</h4></div></div></div><p>When guacd starts up, it needs to open a socket and then
+                    listen on that socket. If it can't even open the socket,
+                    this error will be logged, and guacd will exit. The cause is
+                    most likely related to permissions, and is logged along with
+                    the error.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493325184"></a>Unable to resolve host</h4></div></div></div><p>If the hostname you specified on the commandline cannot be
+                    found, you will see this error. Note that this error is from
+                    guacd, and does not relate to whatever remote desktop
+                    servers you may be trying to use; it relates only to the
+                    host guacd is trying to listen on. Check the hostname or IP
+                    address specified on the commandline. If that checks out,
+                    there may be a problem with your DNS or your network.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493276608"></a>Could not become a daemon</h4></div></div></div><p>In order to become a "daemon" (that is, in order to run in
+                    the background as a system process), guacd must create and
+                    exit from several processes, redirect file descriptors, etc.
+                    If any of these steps fails, guacd will not become a daemon,
+                    and it will log this message and exit. The reason guacd
+                    could not become a daemon will be in the previous error
+                    message in the logs.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493274800"></a>Could not write PID file</h4></div></div></div><p>guacd offers a commandline option that lets you specify a
+                    file that it should write its process ID into, which is
+                    useful for init scripts. If you see this error, it likely
+                    means the user guacd is running as does not have permission
+                    to write this file. The true cause of the error will be
+                    logged in the same entry. Check which user guacd is running
+                    as, and then check that it has write permission to the file
+                    in question.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493272896"></a>Could not listen on socket</h4></div></div></div><p>When guacd starts up, it needs to listen on the socket it
+                    just opened in order to accept connections. If it cannot
+                    listen on the socket, clients will be unable to connect. If,
+                    for any reason, guacd is unable to listen on the socket,
+                    guacd will exit and log this message along with the cause,
+                    which is most likely a low-level system resource
+                    problem.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493271088"></a>Could not accept client connection</h4></div></div></div><p>When a client connects to guacd, it must accept the
+                    connection in order for communication to ensue. If it cannot
+                    even accept the connection, no communication between server
+                    and client will happen, and this error will be logged. The
+                    cause of the error will be logged in the same entry.
+                    Possible causes include permissions problems, or lack of
+                    server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493269264"></a>Error forking child process</h4></div></div></div><p>When a client connects to guacd, it must create a new
+                    process to handle the connection while the old guacd process
+                    continues to listen for new connections. If, for any reason,
+                    guacd cannot create this process, the connection from that
+                    client will be denied, and the cause of the error will be
+                    logged. Possible causes include permissions problems, or
+                    lack of server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493267424"></a>Error closing daemon reference to child
+                    descriptor</h4></div></div></div><p>When guacd receives a connection, and it creates a new
+                    process to handle that connection, it gains a copy of the
+                    file descriptor that the client will use for communication.
+                    As this connection can never be closed unless all references
+                    to the descriptor are closed, the server must close its copy
+                    such that the client is the only remaining holder of the
+                    file descriptor. If the server cannot close the descriptor,
+                    it will log this error message along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493265520"></a>Error sending "sync" instruction</h4></div></div></div><p>During the course of a Guacamole session, guacd must
+                    occasionally "ping" the client to make sure it is still
+                    alive. This ping takes the form of a "sync" instruction,
+                    which the client is obligated to respond to as soon as it is
+                    received. If guacd cannot send this instruction, this error
+                    will be logged, along with the cause. Chances are the
+                    connection has simply been closed, and this error can be
+                    ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493263632"></a>Error flushing output</h4></div></div></div><p>After the client plugin is finished (for the time being)
+                    with handling server messages, the socket is automatically
+                    flushed. If the server cannot flush this socket for some
+                    reason, such as the connection already being closed, you
+                    will see this error. Normally, this error does not indicate
+                    a problem, but rather that the client has simply closed the
+                    connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493261824"></a>Error handling server messages</h4></div></div></div><p>While the client plugin is running, guacd will
+                    occasionally ask the plugin to check and handle any messages
+                    that it may have received from the server it connected to.
+                    If the client plugin fails for some reason while doing this,
+                    this error will be logged, and the cause of the error will
+                    likely be logged in previous log entries by the client
+                    plugin.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493260016"></a>Error reading instruction</h4></div></div></div><p>During the course of a Guacamole session, instructions are
+                    sent from client to server which are to be handled by the
+                    client plugin. If an instruction cannot be read, this error
+                    will be logged. Usually this means simply that the
+                    connection was closed, but it could also indicate that the
+                    version of the client in use is so old that it doesn't
+                    support the current Guacamole protocol at all. If the cause
+                    looks like the connection was closed (end of stream reached,
+                    etc.), this log entry can be ignored. Otherwise, if the
+                    first two numbers of the version numbers of all Guacamole
+                    components match, you have probably found a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493258688"></a>Client instruction handler error</h4></div></div></div><p>This error indicates that a client plugin failed inside
+                    the handler for a specific instruction. When the server
+                    receives instructions from the client, it then invokes
+                    specific instruction handles within the client plugin. In
+                    general, this error is not useful to a user or system
+                    administrator. If the cause looks benign, such as reaching
+                    the end of a stream (the connection closed), it can be
+                    ignored as normal. Otherwise, this error can indicate a bug
+                    either in the client plugin or in a library used by the
+                    client plugin.</p><p>It can also indicate a problem in the remote desktop
+                    server which is causing the client plugin to fail while
+                    communicating with it.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493256032"></a>Error reading "<em class="replaceable"><code>OPCODE</code></em>"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    expects a very specific sequence of instructions to be
+                    received. If the wrong instructions are received, or the
+                    connection is abruptly closed during the handshake, the
+                    above error will occur.</p><p>In the case that the cause is the connection closing, this
+                    is normal, and probably just means that the client
+                    disconnected before the initial handshake completed.</p><p>If the connection was not closed abruptly, but instead the
+                    wrong instruction was received, this could mean either that
+                    the connecting client is from an incompatible version of
+                    Guacamole (and thus does not know the proper handshake
+                    procedure) or you have found a bug. Check whether all
+                    installed components came from the same upstream release
+                    bundle.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493252384"></a>Error sending "args"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    must expose all parameters used by the client plugin via the
+                    args instruction. If this cannot be sent, you will see this
+                    error in the logs. The cause will be included in the error
+                    message, and usually just indicates that the connection was
+                    closed during the handshake, and thus the handshake cannot
+                    continue.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493250576"></a>Error loading client plugin</h4></div></div></div><p>When the client connects, it sends an instruction to guacd
+                    informing it what protocol it wishes to use. If the
+                    corresponding client plugin cannot be found or used for any
+                    reason, this message will appear in the logs. Normally this
+                    indicates that the corresponding client plugin is not
+                    actually installed. The cause listed after the error message
+                    will indicate whether this is the case.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493249248"></a>Error instantiating client</h4></div></div></div><p>After the client plugin is loaded, an initialization
+                    function provided by the client plugin is invoked. If this
+                    function fails, then the client itself cannot be created,
+                    and this error will be logged. Usually this indicates that
+                    one or more of the parameters given to the client plugin are
+                    incorrect or malformed. Check the configuration of the
+                    connection in use at the time.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-vnc-errors"></a>libguac-client-vnc errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493246032"></a>Error waiting for VNC message</h4></div></div></div><p>The VNC client plugin must wait for messages sent by the
+                    VNC server, and handle them when they arrive. If there was
+                    an error while waiting for a message from the VNC server,
+                    this error message will be displayed. Usually this means
+                    that the VNC server closed the connection, or there is a
+                    problem with the VNC server itself, but the true cause of
+                    the error will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493244192"></a>Error handling VNC server message</h4></div></div></div><p>When messages are received from the VNC server,
+                    libvncclient must handle them and then invoke the functions
+                    of libguac-client-vnc as necessary. If libvncclient fails
+                    during the handling of a received message, this error will
+                    be logged, along with (hopefully) the cause. This may
+                    indicate a problem with the VNC server, or a lack of support
+                    within libvncclient.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493242368"></a>Wrong argument count received</h4></div></div></div><p>The connecting client is required to send exactly the same
+                    number of arguments as requested by the client plugin. If
+                    you see this message, it means there is a bug in the client
+                    connecting to guacd, most likely the web application.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-rdp-errors"></a>libguac-client-rdp errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493239360"></a>Invalid <em class="replaceable"><code>parameter</code></em></h4></div></div></div><p>If one of the parameters given, such as "width", "height",
+                    or "color-depth", is invalid (not an integer, for example),
+                    you will receive this error. Check the parameters of the
+                    connection in use and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493237472"></a>Support for the CLIPRDR channel (clipboard redirection) could not be
+                    loaded</h4></div></div></div><p>FreeRDP provides a plugin which provides clipboard support for RDP. This
+                    plugin is typically built into FreeRDP, but some distributions may bundle this
+                    separately. libguac-client-rdp loads this plugin in order to support clipboard,
+                    as well. If this plugin could not be loaded, then clipboard support will not be
+                    available, and the reason will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493236080"></a>Cannot create static channel "<em class="replaceable"><code>name</code></em>": failed to
+                    load "guac-common-svc" plugin for FreeRDP</h4></div></div></div><p>RDP provides support for much of its feature set through static virtual
+                    channels. Sound support, for example is provided through the "RDPSND" channel.
+                    Device redirection for printers and drives is provided through "RDPDR". To
+                    support these and other static virtual channels, libguac-client-rdp builds a
+                    plugin for FreeRDP called "guac-common-svc" which allows Guacamole to hook into
+                    the parts of FreeRDP that support virtual channels.</p><p>If libguac-client-rdp cannot load this plugin, support for any features which
+                    leverage static virtual channels will not work, and the reason will be logged. A
+                    likely explanation is that libguac-client-rdp was built from source, and the
+                    directory specified for FreeRDP's installation location was incorrect. For
+                    FreeRDP to be able to find plugins, those plugins must be placed in the
+                        <code class="filename">freerdp2/</code> subdirectory of whichever directory contains
+                    the <code class="filename">libfreerdp2.so</code> library.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493232016"></a>Server requested unsupported clipboard data type</h4></div></div></div><p>When clipboard support is loaded, libguac-client-rdp
+                    informs the RDP server of all supported clipboard data
+                    types. The RDP server is required to send only those types
+                    supported by the client. If the server decides to send an
+                    unsupported type anyway, libguac-client-rdp ignores the data
+                    sent, and logs this message.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493230240"></a>Clipboard data missing null terminator</h4></div></div></div><p>When text is sent via a clipboard message, it is required
+                    to have a terminating null byte. If this is not the case,
+                    the clipboard data is invalid, and libguac-client-rdp
+                    ignores it, logging this error message.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="servlet-container-logs"></a>Servlet container logs</h2></div></div></div><p>Your servlet container will have logs which the web application
+            side of Guacamole will log errors to. In the case of Tomcat, this is
+            usually <code class="filename">catalina.out</code> or
+                    <code class="filename"><em class="replaceable"><code>HOSTNAME</code></em>.log</code>
+            (for example, <code class="filename">localhost.log</code>).</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping-xml-errors"></a><code class="filename">user-mapping.xml</code> errors</h3></div></div></div><p>Errors in the relating to the
+                    <code class="filename">user-mapping.xml</code> file usually indicate
+                that either the XML is malformed, or the file itself cannot be
+                found.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493222528"></a>Attribute "name" required for connection tag</h4></div></div></div><p>If you specify a connection with a
+                        <code class="code">&lt;connection&gt;</code> tag, it must have a
+                    corresponding name set via the <code class="code">name</code> attribute.
+                    If it does not, then the XML is malformed, and this error
+                    will be logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493220000"></a>Attribute "name" required for param tag</h4></div></div></div><p>Each parameter specified with a <code class="code">&lt;param&gt;</code>
+                    tag must have a corresponding name set via the
+                        <code class="code">name</code> attribute. If it does not, then the
+                    XML is malformed, and this error will be logged. No users
+                    will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493217504"></a>Unexpected character data</h4></div></div></div><p>Character data (text not within angle brackets) can only
+                    exist within the <code class="code">&lt;param&gt;</code> tag. If it exists
+                    elsewhere, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493215472"></a>Invalid encoding type</h4></div></div></div><p>There are only two legal values for the
+                        <code class="code">encoding</code> attribute of the
+                        <code class="code">&lt;authorize&gt;</code> tag: <code class="code">plain</code>
+                    (indicating plain text) and <code class="code">md5</code> (indicating a
+                    value hashed with the MD5 digest). If any other value is
+                    used, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493212016"></a>User mapping could not be read</h4></div></div></div><p>If for any reason the user mapping file cannot be read
+                    (the servlet container lacks read permission for the file,
+                    the file does not exist, etc.), this error will be logged.
+                    Check <code class="filename">guacamole.properties</code> to see where
+                    the user mapping file is specified to exist, and then check
+                    that is both exists and is readable by your servlet
+                    container.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-properties-errors"></a><code class="filename">guacamole.properties</code> errors</h3></div></div></div><p>If a property is malformed or a required property is missing,
+                an error describing the problem will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493207760"></a>Property <em class="replaceable"><code>PROPERTY</code></em> is
+                    required</h4></div></div></div><p>If Guacamole or an extension of Guacamole requires a
+                    specific property in
+                        <code class="filename">guacamole.properties</code>, but this
+                    property is not defined, this error will be logged. Check
+                    which properties are required by the authentication provider
+                    (or other extensions) in use, and then compare that against
+                    the properties within
+                        <code class="filename">guacamole.properties</code>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493204704"></a>Specified authentication provider class is not a
+                    AuthenticationProvider</h4></div></div></div><p>The <code class="code">auth-provider</code> property allows you to
+                    specify a custom authentication provider class which will
+                    handle all authentication, but these classes must implement
+                    the <code class="classname">AuthenticationProvider</code> interface.
+                    If the class specified does not, this error will be logged.
+                    Check that your authentication provider class implements
+                        <code class="classname">AuthenticationProvider</code> (if you
+                    implemented it yourself), and verify that you are specifying
+                    the correct class.</p><p>If you are certain that the class specified is correct,
+                    you may have placed the .jar file for your authentication
+                    provider in the wrong directory. Make sure the .jar file is
+                    in the directory specified by the <code class="code">lib-directory</code>
+                    parameter in guacamole.properties.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493200272"></a>Resource /guacamole.properties not found</h4></div></div></div><p>Guacamole requires that the
+                        <code class="filename">guacamole.properties</code> file is in the
+                    classpath of your servlet container. If it is not, this
+                    error will be logged. Check that
+                        <code class="filename">guacamole.properties</code> is in the
+                    proper location, and then restart your servlet
+                    container.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493197712"></a>Missing "basic-user-mapping" parameter required for basic
+                    login</h4></div></div></div><p>If you are using the authentication provider included with
+                    Guacamole, it requires the <code class="code">basic-user-mapping</code>
+                    property to be set. If this property is missing, you will
+                    see this error. Add the missing property to
+                        <code class="filename">guacamole.properties</code>, restart your
+                    servlet container, and try again.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-auth-errors"></a>Authentication errors</h3></div></div></div><p>If someone attempts to login with invalid credentials, or
+                someone attempts to access a resource or connection that does
+                not exist or they do not have access to, errors regarding the
+                invalid attempt will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493193104"></a>Cannot connect - user not logged in</h4></div></div></div><p>A user attempted to connect using the HTTP tunnel, and
+                    while the tunnel does exist and is attached to their
+                    session, they are not actually logged in. Normally, this
+                    isn't strictly possible, as a user has to have logged in for
+                    a tunnel to be attached to their session, but as it isn't an
+                    impossibility, this error does exist. If you see this error,
+                    it could mean that the user logged out at the same time that
+                    they made a connection attempt.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493191184"></a>Requested configuration is not authorized</h4></div></div></div><p>A user attempted to connect to a configuration with a
+                    given ID, and while that configuration does exist, they are
+                    not authorized to use it. This could mean that the user is
+                    trying to access things they have no privileges for, or that
+                    they are trying to access configurations they legitimately
+                    should, but are actually logged out.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493189392"></a>User has no session</h4></div></div></div><p>A user attempted to access a page that needs data from
+                    their session, but their session does not actually exist.
+                    This usually means the user has not logged in, as sessions
+                    are created through the login process.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-tunnel-errors"></a>Tunnel errors</h3></div></div></div><p>The tunnel frequently returns errors if guacd is killed, the
+                connection is closed, or the client abruptly closes the
+                connection.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493185872"></a>No such tunnel</h4></div></div></div><p>An attempt was made to use a tunnel which does not
+                    actually exist. This is usually just the JavaScript client
+                    sending a leftover message or two while it hasn't realized
+                    that the server has disconnected. If this error happens
+                    consistently and is associated with Guacamole generally not
+                    working, it could be a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493184128"></a>No tunnel created</h4></div></div></div><p>A connection attempt for a specific configuration was
+                    made, but the connection failed, and no tunnel was created.
+                    This is usually because the user was not authorized to use
+                    that connection, and thus no tunnel was created for access
+                    to that connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493182464"></a>No query string provided</h4></div></div></div><p>When the JavaScript client is communicating with the HTTP
+                    tunnel, it <span class="emphasis"><em>must</em></span> provide data in the
+                    query string describing whether it wants to connect, read,
+                    or write. If this data is missing as the error indicates,
+                    there is a bug in the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493180352"></a>Tunnel reached end of stream</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question has already reached the end of stream
+                    (the connection is closed). This is mostly an informative
+                    error, and can be ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493178752"></a>Tunnel is closed</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question is already closed. This can happen if the
+                    client or guacd have closed the connection, but the client
+                    has not yet settled down and is still making read attempts.
+                    As there can be lags between when connections close and when
+                    the client realizes it, this can be safely ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493177440"></a>End of stream during initial handshake</h4></div></div></div><p>If guacd closes the connection suddenly without allowing
+                    the client to complete the initial handshake required by the
+                    Guacamole protocol, this error will appear in the logs. If
+                    you see this error, you should check syslog for any errors
+                    logged by guacd to determine why it closed the connection so
+                    early.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493175696"></a>Element terminator of instruction was not ';' nor
+                    ','</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires individual parts of instructions (called
+                    "elements") to end with either a ";" or "," character. If
+                    they do not, then something has gone wrong during
+                    transmission. This usually indicates a bug in the client
+                    plugin in use, guacd, or libguac.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46227493173904"></a>Non-numeric character in element length</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires each element of an instruction to have a length
+                    prefix, which must be composed entirely of numeric
+                    characters (digits 0 through 9). If a non-numeric character
+                    is read, then something has gone wrong during transmission.
+                    This usually indicates a bug in the client plugin in use,
+                    guacd, or libguac.</p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 17. Administration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part II. Developer's Guide</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/users-guide.html b/doc/1.3.0/gug/users-guide.html
new file mode 100644
index 0000000..60197f8
--- /dev/null
+++ b/doc/1.3.0/gug/users-guide.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. User's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="preface.html" title="Introduction" /><link rel="next" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. User's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="users-guide"></a>Part I. User's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></dd><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt></dl></dd><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></dd><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46227496294336">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227496716912">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46227495382432">Granting Guacamole access to the database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt></dl></dd><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt></dl></dd><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt></dl></dd><dt><span class="chapter"><a href="saml-auth.html">13. SAML Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="saml-auth.html#saml-downloading">Downloading the SAML authentication extension</a></span></dt><dt><span class="section"><a href="saml-auth.html#installing-saml-auth">Installing SAML authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="radius-auth.html">14. RADIUS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></dd><dt><span class="chapter"><a href="adhoc-connections.html">15. Ad-hoc Connections</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-guacamole.html">16. Using Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt></dl></dd><dt><span class="chapter"><a href="administration.html">17. Administration</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt></dl></dd><dt><span class="chapter"><a href="troubleshooting.html">18. Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Implementation and architecture</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/using-guacamole.html b/doc/1.3.0/gug/using-guacamole.html
new file mode 100644
index 0000000..1b39bb3
--- /dev/null
+++ b/doc/1.3.0/gug/using-guacamole.html
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Using Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="adhoc-connections.html" title="Chapter 15. Ad-hoc Connections" /><link rel="next" href="administration.html" title="Chapter 17. Administration" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Using Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="using-guacamole"></a>Chapter 16. Using Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#user-menu">User menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#guacamole-menu">The Guacamole menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#file-browser">Using the file browser</a></span></dt><dt><span class="section"><a href="using-guacamole.html#rdp-virtual-drive">The RDP virtual drive</a></span></dt><dt><span class="section"><a href="using-guacamole.html#guacctl"><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#touch-mouse">Mouse emulation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#text-input">Typing without a physical keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#display-language">Display language</a></span></dt><dt><span class="section"><a href="using-guacamole.html#changing-password">Changing your password</a></span></dt><dt><span class="section"><a href="using-guacamole.html#default-input-settings">Default input settings</a></span></dt></dl></dd></dl></div><p><a id="idm46227495514992" class="indexterm"></a>Guacamole provides access to much of the functionality of a desktop from within
+        your web browser. Although most people use remote desktop tools only when absolutely
+        necessary, we believe that Guacamole must be aimed at becoming a primary means of accessing
+        desktops, and the interface is thus intended to be as seamless and unobtrusive as
+        possible.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="home-screen"></a>Home screen</h2></div></div></div><p>Once you have successfully logged in, you will be taken to either the Guacamole home
+            screen, where all available connections are listed, or directly to a connection, if you
+            only have access to one connection.</p><p>The home screen will contain a list of all connections to which you have access, along
+            with thumbnails of any recently used or active connections. If you have access to a
+            large number of connections and wish to quickly locate a specific connection, you can
+            also enter search terms within the "Filter" field to filter the list of connections by
+            name.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-home-screen.png" width="450" /><div class="caption"><p>The Guacamole home screen. The user menu and several recently-used
+                            connections are visible, along with one active connection.</p></div></div></div></div><p>Clicking on any connection will open that connection within the current window or tab,
+            but multiple connections can be used simultaneously. You can easily navigate back to the
+            home screen without disconnecting by using your browsers back button or the "Home"
+            button in the Guacamole menu. Each connection you use will remain active until
+            explicitly disconnected, or until you navigate away from Guacamole entirely. Active
+            connections can be seen as thumbnails updating in real-time on the home screen.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-menu"></a>User menu</h3></div></div></div><p>With the exception of the client screen discussed below, all Guacamole screens
+                contain a menu in the upper-right corner called the "user menu". This menu displays
+                your username and contains several options which depend on your user's level of
+                access:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Home</span></dt><dd><p>Navigates back to the home screen, if you are not already there. If
+                            you only have access to one connection, this will be replaced with a
+                            link to that connection.</p></dd><dt><span class="term">Settings</span></dt><dd><p>Navigates to the settings interface, which provides access to user
+                            preferences such as display language. If you have access to
+                            administrative functions, those are found within the settings interface,
+                            as well, and are discussed in more detail in <a class="xref" href="administration.html" title="Chapter 17. Administration">Chapter 17, <em>Administration</em></a>.</p></dd><dt><span class="term">Logout</span></dt><dd><p>Logs out of Guacamole completely, closing all current connections and
+                            ending the Guacamole session.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-screen"></a>Client screen</h2></div></div></div><p>Once you open a connection, you will see a real-time view of the remote display. You
+            can interact with this display just as you would your normal desktop. Your mouse and
+            keyboard will function as if they were connected directly to the remote machine.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-client-interface.png" width="540" /><div class="caption"><p>Guacamole client interface, with the Guacamole menu open.</p></div></div></div></div><p>The remote display will take up the entire browser window, with no buttons or menus to
+            disturb the view. With the intent of providing a seamless experience, options specific
+            to remote desktop are hidden within the Guacamole menu, which can be opened as
+            needed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-menu"></a>The Guacamole menu</h3></div></div></div><p>The Guacamole menu is a sidebar which is hidden until explicitly shown. On a
+                desktop or other device which has a hardware keyboard, you can show this menu by
+                pressing <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>. If you are using a mobile or touchscreen device that lacks a keyboard,
+                you can also show the menu by swiping right from the left edge of the screen. To
+                hide the menu, you press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span> again or swipe left across the screen.</p><p>The Guacamole menu provides options for:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Navigating back to the home screen</p></li><li class="listitem"><p>Sharing the current connection</p></li><li class="listitem"><p>Reading from (and writing to) the clipboard of the remote
+                            desktop</p></li><li class="listitem"><p>Uploading and downloading files</p></li><li class="listitem"><p>Selecting alternative methods of typing or controlling the mouse,
+                            particularly for use on mobile or touchscreen devices</p></li><li class="listitem"><p>Zooming in and out of the remote display</p></li><li class="listitem"><p>Disconnecting from the current connection entirely</p></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-clipboard"></a>Copying/pasting text</h2></div></div></div><p><a id="idm46227495795312" class="indexterm"></a>At the top of the Guacamole menu is a text area labeled "clipboard" along
+            with some basic instructions:</p><div class="blockquote"><blockquote class="blockquote"><p>Text copied/cut within Guacamole will appear here. Changes to the text below will
+                affect the remote clipboard.</p></blockquote></div><p>The text area functions as an interface between the remote clipboard and the local
+            clipboard. Text from the local clipboard can be pasted into the text area, causing that
+            text to be sent to the clipboard of the remote desktop. Similarly, if you copy or cut
+            text within the remote desktop, you will see that text within the text area, and can
+            manually copy it into the local clipboard if desired.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-user-menu"></a>Disconnecting and navigation</h2></div></div></div><p>When you are done using the current connection, or you wish to navigate elsewhere
+            temporarily, options to do so are within the user menu inside the Guacamole menu:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-disconnect.png" width="540" /><div class="caption"><p>The user menu within the Guacamole menu.</p></div></div><p>The user menu within the Guacamole menu provides an additional "Disconnect" option
+                that allows you to explicitly close the current connection only. Clicking "Logout"
+                will also implicitly disconnect all active connections, including the current
+                connection.</p><p>Navigating back to the home screen or to the settings screen will not disconnect
+                you: your connection will continue running in the background while you change
+                settings or initiate another connection, and you can resume any active connection by
+                clicking on it within the home screen.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-share-menu"></a>Sharing the connection</h2></div></div></div><p>If the Guacamole server is configured to allow connection sharing, and you have been
+            granted permission to share the current connection, an additional "Share" menu will
+            appear next to your username in the Guacamole menu. Clicking on this menu opens a list
+            of options for sharing the current connection.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share.png" width="540" /></div></div><p>Clicking any of the options within the "Share" menu will immediately generate a unique
+            share link which can be distributed to anyone, even to users which do not otherwise have
+            accounts within the same Guacamole system.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share-link.png" width="540" /></div></div><p>When the link is visited, that user will be given temporary access to your connection,
+            restricted according to the sharing option chosen. This access, and the validity of the
+            link overall, lasts only until you disconnect. Once the connection is closed, the link
+            ceases to be valid, and any users sharing the connection with you will be
+            disconnected.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="file-transfer"></a>Transferring files</h2></div></div></div><a id="idm46227495679088" class="indexterm"></a><p>You can transfer files back and forth between your local computer and the remote
+            desktop if it is supported by the underlying protocol and enabled on the connection.
+            Currently, Guacamole supports file transfer for VNC, RDP, and SSH, using either the
+            native file transfer support of the protocol or SFTP.</p><p>Files can be transferred to the remote computer by dragging and dropping the files
+            into your browser window, or through using the file browser located in the Guacamole
+            menu.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="file-browser"></a>Using the file browser</h3></div></div></div><p>If file transfer is enabled on the connection, you will see one or more filesystem
+                devices listed within the Guacamole menu. Clicking on one of the filesystems opens a
+                file browser which lists the files and directories within that filesystem.</p><div class="mediaobject"><img src="images/file-browser.png" width="270" /><div class="caption"><p>The file browser within the Guacamole menu.</p></div></div><p>Double-clicking on any directory will change the current location of the file
+                browser to that directory, updating the list of files shown as well as the
+                "breadcrumbs" at the top of the file browser. Clicking on any of the directory names
+                listed in the breadcrumbs will bring you back to that directory, and clicking on the
+                drive icon on the far left will bring you all the way back to the root level.</p><p>Downloads are initiated by double-clicking on any file shown, while uploads are
+                initiated by clicking the "Upload Files" button. Clicking "Upload Files" will open a
+                file browsing dialog where you can choose one or more files from your local
+                computer, ultimately uploading the selected files to the directory currently
+                displayed within the file browser.</p><p>The state of all file uploads can be observed within the notification dialog that
+                appears once an upload begins, and can be cleared once completed by clicking the
+                "Clear" button. Downloads are tracked through your browser's own download
+                notification system.</p><div class="mediaobject"><img src="images/file-transfers.png" width="270" /><div class="caption"><p>In-progress and completed file transfers.</p></div></div><p>When you are done browsing the filesystem and transferring files, click "Back" to
+                return to the Guacamole menu.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp-virtual-drive"></a>The RDP virtual drive</h3></div></div></div><p>RDP provides its own native support for file transfer called "drive redirection"
+                or "RDPDR". Guacamole provides support for this mechanism by emulating a virtual
+                drive. Typically, this virtual drive will appear as a network drive within the RDP
+                session. Files uploaded and downloaded will be preserved within this drive, even
+                after disconnecting.</p><div class="mediaobject"><img src="images/guacamole-drive.png" width="450" /><div class="caption"><p>The Guacamole drive within a Windows RDP session.</p></div></div><p>Files can be downloaded from this drive using the file browser in the Guacamole
+                menu or using the special "Download" folder within the virtual drive. All files
+                dropped into this folder will automatically begin uploading to the client, and thus
+                downloading through the browser.</p><div class="mediaobject"><img src="images/guacamole-drive-download.png" width="450" /><div class="caption"><p>The Guacamole drive's "Download" folder.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacctl"></a><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></h3></div></div></div><p><a id="idm46227495655232" class="indexterm"></a><a id="idm46227495654368" class="indexterm"></a><a id="idm46227495653504" class="indexterm"></a><a id="idm46227495652192" class="indexterm"></a>In addition to traditional drag-and-drop and the file browser,
+                Guacamole's SSH support can be used with the <span class="command"><strong>guacctl</strong></span> utility. The
+                    <span class="command"><strong>guacctl</strong></span> utility is a simple shell script <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-server/master/bin/guacctl" target="_top">included with Guacamole</a> which allows you to use and configure file
+                transfer directly from the command line within the SSH session:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacctl</code></strong>
+<code class="computeroutput">guacctl 0.8.0, Guacamole SSH session control utility.
+Usage: guacctl [OPTION] [FILE]...
+
+    -d, --download         download each of the files listed.
+    -s, --set-directory    set the destination directory for future uploaded 
+                           files.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -d <em class="replaceable"><code>FILENAME</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -s <em class="replaceable"><code>DIRECTORY</code></em></code></strong>
+$</pre></div><p>For convenience, you may also create a symbolic link or alias to
+                    <span class="command"><strong>guacctl</strong></span> called <span class="command"><strong>guacget</strong></span>. When run as
+                    <span class="command"><strong>guacget</strong></span>, the utility behaves as if the
+                    <code class="option">--download</code> option were supplied and initiates a download for
+                each file specified on the command line.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-osk"></a>On-screen keyboard</h2></div></div></div><p>Certain key combinations are impossible to press within a web application like
+            Guacamole because they are reserved by the operating system (<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Del</strong></span> or <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Tab</strong></span>, for example) or by the web browser. If you press one of these reserved
+            combinations, the effect will be observed locally, not remotely, and the remote desktop
+            will receive only some of the keys.</p><p>Guacamole provides its own, built-in on-screen keyboard which allows keys to be sent
+            to the remote desktop without affecting the local system. If the device you're using
+            does not have certain keys which the remote desktop depends on, such as the arrow keys
+            or <span class="keycap"><strong>Ctrl</strong></span>, you can use the on-screen keyboard for this, too. You can show
+            the on-screen keyboard by selecting the "On-screen keyboard" option from the
+            menu.</p><p>Clicking (or tapping) the buttons of the on-screen keyboard has the same effect as
+            pressing the same buttons on a real keyboard, except that the operating system and
+            browser will not intercept these keypresses; they will only be sent to the remote
+            desktop.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="scaling-display"></a>Scaling the display</h2></div></div></div><p><a id="idm46227495632928" class="indexterm"></a>Guacamole will default to shrinking or expanding the remote display to fit
+            the browser window exactly, but this is not necessarily ideal. If the remote display is
+            much larger than your local display, the screen may be impossible to see or interact
+            with. This is especially true for mobile phones, whose screens need to be small enough
+            to fit in the average hand.</p><p>You can scale the display on touch devices by using the familiar pinch gesture. Place
+            two fingers on the screen and bring them closer together to zoom out or further apart to
+            zoom in.</p><p>If your device lacks a touch screen, you can also control the zoom level through the
+            menu. The controls for zooming in and out are located at the bottom of the menu. The
+            current zoom level is displayed between two "-" and "+" buttons which control the zoom
+            level in 10% increments.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="touch-devices"></a>Mobile or touch devices</h2></div></div></div><p>Guacamole is designed to work equally well across all HTML5 browsers, including those
+            of mobile devices. It will automatically handle input from a touch screen or a
+            traditional mouse (or both, if you happen to have such a gifted computer), and provides
+            alternative input methods for devices which lack a physical keyboard.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="touch-mouse"></a>Mouse emulation</h3></div></div></div><p><a id="idm46227495626736" class="indexterm"></a>In the case that your device has a touchscreen and lacks a mouse,
+                Guacamole will emulate a mouse for the sake of interacting with remote desktops that
+                expect mouse input. By default, Guacamole uses "absolute" mouse emulation. This
+                means that the mouse pointer is positioned at the location of each tap on the
+                screen.</p><p>In both absolute and relative modes, you can click-and-drag by tapping the screen
+                and then quickly placing your finger back down. This gesture only causes the mouse
+                button to press down, but does not release it again until you lift your finger back
+                up.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="absolute-mouse-emulation"></a>Absolute mode (touchscreen)</h4></div></div></div><p>Absolute mouse emulation is the default as it tends to be what people expect
+                    when using a touch device to interact with applications designed for mouse
+                    input.</p><p>Each tap on the screen is translated into a left-click at that position.
+                    Right-clicking is accomplished through pressing and holding your finger on the
+                    screen. If parts of the remote display are off-screen, you can drag your finger
+                    around the screen to pan the off-screen parts back into view.</p><p>Although absolute mouse emulation works generally well, a finger makes for a
+                    very inaccurate pointing device. To address this, Guacamole also provides
+                    "relative" mouse emulation. Relative mouse emulation provides a way to deal with
+                    the need for accurate pointer control, when a true pointer device is not
+                    present.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchscreen.png" width="135" /></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="relative-mouse-emulation"></a>Relative mode (touchpad)</h4></div></div></div><p>Guacamole's relative mouse emulation behaves similarly to the touchpad present
+                    on most modern laptops. You drag your finger across the display to move the
+                    mouse pointer, and tap the display to left-click. The pointer moves relative to
+                    the motion of your finger. Right-clicking is accomplished with a two-finger tap,
+                    and middle-clicking with a three-finger tap. The mouse scroll wheel can be
+                    operated by dragging two fingers up or down.</p><p>Because the relative mouse emulation reserves so many gestures for the
+                    different mouse buttons and actions, common touch gestures like panning and
+                    pinch-to-zoom will not work while relative mouse emulation is enabled. Instead,
+                    the screen will automatically pan to keep the mouse pointer in view, and you can
+                    zoom through the buttons in the menu.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchpad.png" width="135" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="text-input"></a>Typing without a physical keyboard</h3></div></div></div><p>Many mobile devices lack a physical keyboard entirely, and instead provide their
+                own on-screen keyboards. As these are not true keyboards per se and do not produce
+                key presses, Guacamole's text input mode is required for typing on these
+                platforms.</p><p>"Text input" allows input of keystrokes based on the input of text. Choosing "Text
+                input" tells Guacamole to infer keystrokes by tracking text entered, rather than
+                relying on actual key presses. Guacamole will instead determine the combination of
+                keypresses necessary to produce the same pattern of input, including
+                deletions.</p><p><a id="idm46227496116928" class="indexterm"></a>If you wish to type via an IME (input method editor), such as those
+                required for Chinese, Japanese, or Korean, text input mode is required for this as
+                well. Such IMEs function through the explicit insertion of text and do not send
+                traditional key presses. Using text input mode within Guacamole thus allows you to
+                use a locally-installed IME, without requiring the IME to be installed on the remote
+                desktop.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preferences"></a>Changing preferences</h2></div></div></div><p>User preferences can be changed within the settings screen. These preferences are
+            stored locally within the browser, so if you use multiple computers to access Guacamole,
+            you can have different settings for each location. The settings screen allows users to
+            change the language of the Guacamole interface, to change the default input method used
+            by Guacamole connections, and to change the default mouse emulation mode for if a touch
+            device is used. If you have sufficient permissions, you may also change your password,
+            or administer the system.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-preferences.png" width="540" /><div class="caption"><p>Guacamole preferences screen.</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="display-language"></a>Display language</h3></div></div></div><p>The Guacamole interface is currently available in English, Dutch, French, German,
+                Italian, and Russian. By default, Guacamole will attempt to determine the
+                appropriate display language by checking the language preferences of the browser in
+                use. If this fails, or the browser is using a language not yet available within
+                Guacamole, English will be used as a fallback.</p><p>If you wish to override the current display language, you can do so by selecting a
+                different language within the "Display language" field. The change will take effect
+                immediately.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-password"></a>Changing your password</h3></div></div></div><p>System administrators can restrict the ability of individual users to change their
+                own passwords, so this section may not always be available. If your account
+                    <span class="emphasis"><em>does</em></span> have permission, the preferences screen will contain a
+                "Change Password" section.</p><p>To change your password, you must provide your current password, enter the desired
+                new password, and click "Update Password". You will remain logged in, and the change
+                will affect any future login attempt.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="default-input-settings"></a>Default input settings</h3></div></div></div><p>Guacamole provides multiple keyboard input methods and multiple mouse emulation
+                modes. Many of these settings are specifically useful for touch devices, while
+                others are aimed mainly at traditional desktop use. By default, Guacamole will use
+                the keyboard and mouse modes most commonly preferred by users, but you can change
+                these defaults if they do not fit your tastes or your current device.</p><p>The choices available mirror those within the Guacamole menu discussed earlier in
+                this chapter, and changing these settings will affect the default values selected
+                within the Guacamole menu of future connections.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 15. Ad-hoc Connections </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 17. Administration</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/gug/writing-you-own-guacamole-app.html b/doc/1.3.0/gug/writing-you-own-guacamole-app.html
new file mode 100644
index 0000000..5c95a7d
--- /dev/null
+++ b/doc/1.3.0/gug/writing-you-own-guacamole-app.html
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 27. Writing your own Guacamole application</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="event-listeners.html" title="Chapter 26. Event listeners" /><link rel="next" href="appendices.html" title="Part III. Appendices" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 27. Writing your own Guacamole application</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="writing-you-own-guacamole-app"></a>Chapter 27. Writing your own Guacamole application</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46227492268480"><code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46227492261872"><code class="filename">WEB-INF/web.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46227492257664"><code class="filename">index.html</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46227492252176">Building the skeleton</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#adding-guac-to-pom">Updating <code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-tunnel">The simplest tunnel possible</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-client">Adding the client</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></div><a id="idm46227492290912" class="indexterm"></a><a id="idm46227492289904" class="indexterm"></a><p>As Guacamole is an API, one of the best ways to put Guacamole to use is by building your
+        own Guacamole-driven web application, integrating HTML5 remote desktop into whatever you
+        think needs it.</p><p>The Guacamole project provides an example of doing this called "guacamole-example", but
+        this example is already completed for you, and from a quick glance at this example, it may
+        not be obvious just how easy it is to integrate remote access into a web application. This
+        tutorial will walk you through the basic steps of building an HTML5 remote desktop
+        application using the Guacamole API and Maven.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-guacamole-architecture"></a>The basics</h2></div></div></div><p>Guacamole's architecture is made up of many components, but it's actually
+            straightforward, especially from the perspective of the web application.</p><p>Guacamole has a proxy daemon, guacd, which handles communication using remote desktop
+            protocols, exposing those to whatever connects to it (in this case, the web application)
+            using the Guacamole protocol. From where the web application is standing, it doesn't
+            really matter that guacd dynamically loads protocol plugins or that it shares a common
+            library allowing this; all that matters is that the web application just has to connect
+            to port 4822 (where guacd listens by default) and use the Guacamole protocol. The
+            architecture will take care of the rest.</p><p>Thankfully, the Java side of the Guacamole API provides simple classes which already
+            implement the Guacamole protocol with the intent of tunneling it between guacd and the
+            JavaScript half of your web application. A typical web application leveraging these
+            classes needs only the following:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A class which extends <code class="classname">GuacamoleHTTPTunnelServlet</code>,
+                        providing the tunnel between the JavaScript client (presumably using
+                        guacamole-common-js) and guacd.</p><p><code class="classname">GuacamoleHTTPTunnelServlet</code> is an abstract class
+                        which is provided by the Guacamole API and already implements a fully
+                        functional, HTTP-based tunnel which the tunneling objects already part of
+                        guacamole-common-js are written to connect to. This class exists to make it
+                        easy for you to use Guacamole's existing and robust HTTP tunnel
+                        implementation.</p><p>If you want to not use this class and instead use your own tunneling
+                        mechanism, perhaps WebSocket, this is fine; the JavaScript object mentioned
+                        above implements a common interface which you can also implement, and the
+                        Guacamole JavaScript client which is also part of guacamole-common-js will
+                        happily use your implementation as long as it provides that
+                        interface.</p></li><li class="listitem"><p>A web page which includes JavaScript files from guacamole-common-js and
+                        uses the client and tunnel objects to connect back to the web
+                        application.</p><p>The JavaScript API provided by the Guacamole project includes a full
+                        implementation of the Guacamole protocol as a client, implementations of
+                        HTTP and WebSocket-based tunnels, and mouse/keyboard/touch input
+                        abstraction. Again, as the Guacamole protocol and all parts of the
+                        architecture are documented here, you don't absolutely need to use these
+                        objects, but it will make your life easier. Mouse and keyboard support in
+                        JavaScript is finicky business, and the Guacamole client provided is
+                        well-known to work with other components in the API, being the official
+                        client of the project.</p></li></ol></div><p>That's really all there is to it.</p><p>If you want authentication, the place to implement that would be in your extended
+            version of <code class="classname">GuacamoleHTTPTunnelServlet</code>; this is what the Guacamole
+            web application does. Besides authentication, there are many other things you could wrap
+            around your remote desktop application, but ultimately the base of all this is simple:
+            you have a tunnel which allows the JavaScript client to communicate with guacd, and you
+            have the JavaScript client itself, with the hard part already provided within
+            guacamole-common-js.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-app-skeleton"></a>Web application skeleton</h2></div></div></div><p>As with most tutorials, this tutorial begins with creating a project skeleton that
+            establishes a minimal base for the tutorial to enhance in subsequent steps.</p><p>This tutorial will use Maven, which is the same build system used by the upstream
+            Guacamole project. As the Guacamole project has a Maven repository for both the Java and
+            JavaScript APIs, writing a Guacamole-based application using Maven is much easier; Maven
+            will download and use the Guacamole API automatically.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492268480"></a><code class="filename">pom.xml</code></h3></div></div></div><p>All Maven projects must have a project descriptor, the
+                    <code class="filename">pom.xml</code> file, in the root directory of the project. This
+                file describes project dependencies and specific build requirements. Unlike other
+                build tools like Apache Ant or GNU Autotools, Maven chooses convention over
+                configuration: files within the project must be placed in specific locations, and
+                the project dependencies must be fully described in the pom.xml. If this is done,
+                the build will be handled automatically.</p><p>The basis of this Guacamole-driven web application will be a simple HTML file
+                which will ultimately become the client. While the finished product will have an
+                HTTP tunnel written in Java, we don't need this yet for our skeleton. We will create
+                a very basic, barebones Maven project containing only
+                    <code class="filename">index.html</code> and a web application descriptor file,
+                    <code class="filename">web.xml</code>. Once these files are in place, the project can be
+                packaged into a <code class="filename">.war</code> file which can be deployed to your servlet
+                container of choice (such as Apache Tomcat).</p><p>As this skeleton will contain no Java code, it has no dependencies, and no build
+                requirements beyond the metadata common to any Maven project. The
+                    <code class="filename">pom.xml</code> is thus very simple for the time being:</p><div class="informalexample"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
+                             http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;war&lt;/packaging&gt;
+    &lt;version&gt;1.3.0&lt;/version&gt;
+    &lt;name&gt;guacamole-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+&lt;/project&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492261872"></a><code class="filename">WEB-INF/web.xml</code></h3></div></div></div><p>Before the project will build, there needs to be a web application deployment
+                descriptor, <code class="filename">web.xml</code>. This file is required by the Java EE
+                standard for building the <code class="filename">.war</code> file which will contain the web
+                application, and will be read by the servlet container when the application is
+                actually deployed. For Maven to find and use this file when building the
+                    <code class="filename">.war</code>, it must be placed in the
+                    <code class="filename">src/main/webapp/WEB-INF/</code> directory.</p><div class="informalexample"><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+
+&lt;web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;!-- Basic config --&gt;
+    &lt;welcome-file-list&gt;
+        &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
+    &lt;/welcome-file-list&gt;
+
+&lt;/web-app&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492257664"></a><code class="filename">index.html</code></h3></div></div></div><p>With the <code class="filename">web.xml</code> file in place and the skeleton
+                    <code class="filename">pom.xml</code> written, the web application will now build
+                successfully. However, as the <code class="filename">web.xml</code> refers to a "welcome
+                file" called <code class="filename">index.html</code> (which will ultimately contain our
+                client), we need to put this in place so the servlet container will have something
+                to serve. This file, as well as any other future static files, belongs within
+                    <code class="filename">src/main/webapp</code>.</p><p>For now, this file can contain anything, since the other parts of our
+                Guacamole-driven web application are not written yet. It is a placeholder which we
+                will replace later:</p><div class="informalexample"><pre class="programlisting">&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+
+    &lt;head&gt;
+        &lt;title&gt;Guacamole Tutorial&lt;/title&gt;
+    &lt;/head&gt;
+
+    &lt;body&gt;
+        &lt;p&gt;Hello World&lt;/p&gt;
+    &lt;/body&gt;
+
+&lt;/html&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46227492252176"></a>Building the skeleton</h3></div></div></div><p>Once all three of the above files are in place, the web application will build,
+                and can even be deployed to your servlet container. It won't do anything yet other
+                than serve the <code class="filename">index.html</code> file, but it's good to at least try
+                building the web application to make sure nothing is missing and all steps were
+                followed correctly before proceeding:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-tutorial
+[INFO]    task-segment: [package]
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 4 seconds
+[INFO] Finished at: Fri Jan 11 13:04:11 PST 2013
+[INFO] Final Memory: 18M/128M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESSFUL</code>" message
+                when you build the web application, there will be a new file,
+                    <code class="filename">target/guacamole-tutorial-1.3.0.war</code>, which
+                can be deployed to your servlet container and tested. If you changed the name or
+                version of the project in the <code class="filename">pom.xml</code> file, the name of this new
+                    <code class="filename">.war</code> file will be different, but it can still be found
+                within <code class="filename">target/</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-skeleton"></a>Adding Guacamole</h2></div></div></div><p>Once we have a functional web application built, the next step is to actually add the
+            references to the Guacamole API and integrate a Guacamole client into the
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="adding-guac-to-pom"></a>Updating <code class="filename">pom.xml</code></h3></div></div></div><p>Now that we're adding Guacamole components to our project, we need to modify
+                    <code class="filename">pom.xml</code> to specify which components are being used, and
+                where they can be obtained. With this information in place, Maven will automatically
+                resolve dependencies and download them as necessary during the build.</p><p>Regarding the build process itself, there are two main changes: we are now going
+                to be using Java, and we need the JavaScript files from guacamole-common-js included
+                automatically inside the <code class="filename">.war</code>.</p><p>Guacamole requires at least Java 1.6, thus we must add a section to the
+                    <code class="filename">pom.xml</code> which describes the source and target Java
+                versions:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Compile using Java 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>Including the JavaScript files from an external project like guacamole-common-js
+                requires using a feature of the maven war plugin called overlays. To add an overlay
+                containing guacamole-common-js, we add a section describing the configuration of the
+                Maven war plugin, listing guacamole-common-js as an overlay:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            ...
+
+            &lt;!-- Overlay guacamole-common-js (zip) --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.6&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;overlays&gt;
+                        &lt;overlay&gt;
+                            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+                            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+                            &lt;type&gt;zip&lt;/type&gt;
+                        &lt;/overlay&gt;
+                    &lt;/overlays&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>With the build now configured, we still need to add dependencies and list the
+                repositories those dependencies can be downloaded from.</p><p>As this is a web application which will use the Java Servlet API, we must
+                explicitly include this as a dependency, as well as the Guacamole Java and
+                JavaScript APIs:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Servlet API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+            &lt;version&gt;2.5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Main Guacamole library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Guacamole JavaScript library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+            &lt;version&gt;1.3.0&lt;/version&gt;
+            &lt;type&gt;zip&lt;/type&gt;
+            &lt;scope&gt;runtime&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+    ...</pre></div><p>The Java Servlet API will be provided by your servlet container, so Maven does not
+                need to download it during the build, and it need not exist in any Maven
+                repository.</p><p>With these changes, the web application will still build at this point, even
+                though no Java code has been written yet. You may wish to verify that everything
+                still works.</p><p>If the <code class="filename">pom.xml</code> was updated properly as described above, the
+                web application should build successfully, and the Guacamole JavaScript API should
+                be accessible in the <code class="filename">guacamole-common-js/</code> subdirectory of your
+                web application after it is deployed. A quick check that you can access
+                    <code class="uri">/guacamole-tutorial-1.3.0/guacamole-common-js/all.min.js</code>
+                is probably worth the effort.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-tunnel"></a>The simplest tunnel possible</h3></div></div></div><p>As with the other tutorials in this book, we will keep this simple for the sake of
+                demonstrating the principles behind a Guacamole-based web application, and to give
+                developers a good idea of where to start looking when it's time to consult the API
+                documentation.</p><p>It is the duty of the class extending
+                    <code class="classname">GuacamoleHTTPTunnelServlet</code> to implement a function called
+                    <code class="methodname">doConnect()</code>. This is the only function required to be
+                implemented, and in general it is the only function you should implement; the other
+                functions involved are already optimized for tunneling the Guacamole
+                protocol.</p><p>The <code class="methodname">doConnect()</code> function returns a
+                    <code class="classname">GuacamoleTunnel</code>, which provides a persistent
+                communication channel for <code class="classname">GuacamoleHTTPTunnelServlet</code> to use
+                when talking with guacd and initiating a connection with some arbitrary remote
+                desktop using some arbitrary remote desktop protocol. In our simple tunnel, this
+                configuration will be hard-coded, and no authentication will be attempted. Any user
+                accessing this web application will be immediately given a functional remote
+                desktop, no questions asked.</p><p>Create a new file, <code class="filename">TutorialGuacamoleTunnelServlet.java</code>,
+                defining a basic implementation of a tunnel servlet class:</p><div class="informalexample"><pre class="programlisting">package org.apache.guacamole.net.example;
+
+import javax.servlet.http.HttpServletRequest;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.GuacamoleSocket;
+import org.apache.guacamole.net.GuacamoleTunnel;
+import org.apache.guacamole.net.InetGuacamoleSocket;
+import org.apache.guacamole.net.SimpleGuacamoleTunnel;
+import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+import org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet;
+
+public class TutorialGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Create our configuration
+        GuacamoleConfiguration config = new GuacamoleConfiguration();
+        config.setProtocol("vnc");
+        config.setParameter("hostname", "localhost");
+        config.setParameter("port", "5901");
+        config.setParameter("password", "potato");
+
+        // Connect to guacd - everything is hard-coded here.
+        GuacamoleSocket socket = new ConfiguredGuacamoleSocket(
+                new InetGuacamoleSocket("localhost", 4822),
+                config
+        );
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);;
+
+    }
+
+}</pre></div><p>Place this file in the
+                    <code class="filename">src/main/java/org/apache/guacamole/net/example</code> subdirectory
+                of the project. The initial part of this subdirectory,
+                    <code class="filename">src/main/java</code>, is the path required by Maven, while the
+                rest is the directory required by Java based on the package associated with the
+                class.</p><p>Once the class defining our tunnel is created, it must be added to the
+                    <code class="filename">web.xml</code> such that the servlet container knows which URL
+                maps to it. This URL will later be given to the JavaScript client to establish the
+                connection back to the Guacamole server:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;!-- Guacamole Tunnel Servlet --&gt;
+    &lt;servlet&gt;
+        &lt;description&gt;Tunnel servlet.&lt;/description&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;servlet-class&gt;
+            org.apache.guacamole.net.example.TutorialGuacamoleTunnelServlet
+        &lt;/servlet-class&gt;
+    &lt;/servlet&gt;
+
+    &lt;servlet-mapping&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;url-pattern&gt;/tunnel&lt;/url-pattern&gt;
+    &lt;/servlet-mapping&gt;
+
+    ...</pre></div><p>The first section assigns a unique name, "Tunnel", to the servlet class we just
+                defined. The second section maps the servlet class by it's servlet name ("Tunnel")
+                to the URL we wish to use when making HTTP requests to the servlet:
+                    <code class="uri">/tunnel</code>. This URL is relative to the context root of the web
+                application. In the case of this web application, the final absolute URL will be
+                    <code class="uri">/guacamole-tutorial-1.3.0/tunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-client"></a>Adding the client</h3></div></div></div><p>As the Guacamole JavaScript API already provides functional client and tunnel
+                implementations, as well as mouse and keyboard input objects, the coding required
+                for the "web" side of the web application is very minimal.</p><p>We must create a <code class="classname">Guacamole.HTTPTunnel</code>, connect it to our
+                previously-implemented tunnel servlet, and pass that tunnel to a new
+                    <code class="classname">Guacamole.Client</code>. Once that is done, and the
+                    <code class="methodname">connect()</code> function of the client is called,
+                communication will immediately ensue, and your remote desktop will be
+                visible:</p><div class="informalexample"><pre class="programlisting">    ...
+    &lt;body&gt;
+
+        &lt;!-- Guacamole --&gt;
+        &lt;script type="text/javascript"
+            src="guacamole-common-js/all.min.js"&gt;&lt;/script&gt;
+
+        &lt;!-- Display --&gt;
+        &lt;div id="display"&gt;&lt;/div&gt;
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            // Get display div from document
+            var display = document.getElementById("display");
+
+            // Instantiate client, using an HTTP tunnel for communications.
+            var guac = new Guacamole.Client(
+                new Guacamole.HTTPTunnel("tunnel")
+            );
+
+            // Add client to display div
+            display.appendChild(guac.getDisplay().getElement());
+            
+            // Error handler
+            guac.onerror = function(error) {
+                alert(error);
+            };
+
+            // Connect
+            guac.connect();
+
+            // Disconnect on close
+            window.onunload = function() {
+                guac.disconnect();
+            }
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+    &lt;/body&gt;
+    ...</pre></div><p>If you build and deploy the web application now, it will work, but mouse and
+                keyboard input will not. This is because input is not implemented by the client
+                directly. The Guacamole.Client object only decodes the Guacamole protocol and
+                handles the display, providing an element which you can add manually to the DOM.
+                While it will also send keyboard and mouse events for you, you need to call the
+                respective functions manually. The Guacamole API provides keyboard and mouse
+                abstraction objects which make this easy.</p><p>We need only create a <code class="classname">Guacamole.Mouse</code> and
+                    <code class="methodname">Guacamole.Keyboard</code>, and add event handlers to handle
+                their corresponding input events, calling whichever function of the Guacamole client
+                is appropriate to send the input event through the tunnel to guacd:</p><div class="informalexample"><pre class="programlisting">        ...
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            ...
+
+            // Mouse
+            var mouse = new Guacamole.Mouse(guac.getDisplay().getElement());
+
+            mouse.onmousedown = 
+            mouse.onmouseup   =
+            mouse.onmousemove = function(mouseState) {
+                guac.sendMouseState(mouseState);
+            };
+
+            // Keyboard
+            var keyboard = new Guacamole.Keyboard(document);
+
+            keyboard.onkeydown = function (keysym) {
+                guac.sendKeyEvent(1, keysym);
+            };
+
+            keyboard.onkeyup = function (keysym) {
+                guac.sendKeyEvent(0, keysym);
+            };
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+        ...</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="next-steps"></a>Where to go from here</h2></div></div></div><p>At this point, we now have a fully functional Guacamole-based web application. This
+            web application inherits all the core functionality present in the official Guacamole
+            web application, including sound and video, without very much coding.</p><p>Extending this application to provide authentication, multiple connections per user,
+            or a spiffy interface which is compatible with mobile is not too much of a stretch. This
+            is exactly how the Guacamole web application is written. Integrating Guacamole into an
+            existing application would be similar.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 26. Event listeners </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part III. Appendices</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.3.0/libguac/annotated.html b/doc/1.3.0/libguac/annotated.html
new file mode 100644
index 0000000..e082a7b
--- /dev/null
+++ b/doc/1.3.0/libguac/annotated.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__encoder.html" target="_self">guac_audio_encoder</a></td><td class="desc">Arbitrary audio codec encoder </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__stream.html" target="_self">guac_audio_stream</a></td><td class="desc">Basic audio stream </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__client.html" target="_self">guac_client</a></td><td class="desc">Guacamole proxy client </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__layer.html" target="_self">guac_layer</a></td><td class="desc">Represents a single layer within the Guacamole protocol </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__object.html" target="_self">guac_object</a></td><td class="desc">Represents a single object within the Guacamole protocol </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__parser.html" target="_self">guac_parser</a></td><td class="desc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool.html" target="_self">guac_pool</a></td><td class="desc">A pool of integers </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool__int.html" target="_self">guac_pool_int</a></td><td class="desc">Represents a single integer within a larger pool of integers </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket.html" target="_self">guac_socket</a></td><td class="desc">The core I/O object of Guacamole </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket__ssl__data.html" target="_self">guac_socket_ssl_data</a></td><td class="desc">SSL socket-specific data </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__stream.html" target="_self">guac_stream</a></td><td class="desc">Represents a single stream within the Guacamole protocol </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user.html" target="_self">guac_user</a></td><td class="desc">Representation of a physical connection within a larger logical connection which may be shared </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user__info.html" target="_self">guac_user_info</a></td><td class="desc">Information exposed by the remote client during the connection handshake which can be used by a client plugin </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv-constants_8h.html b/doc/1.3.0/libguac/argv-constants_8h.html
new file mode 100644
index 0000000..a141b0e
--- /dev/null
+++ b/doc/1.3.0/libguac/argv-constants_8h.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">argv-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to automatic handling of received "argv" instructions.  
+<a href="#details">More...</a></p>
+
+<p><a href="argv-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a4d2cae4a9598d24401fdc0067e879029"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029">GUAC_ARGV_OPTION_ONCE</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:a4d2cae4a9598d24401fdc0067e879029"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option flag which declares to <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a> that the associated argument should be processed exactly once.  <a href="#a4d2cae4a9598d24401fdc0067e879029">More...</a><br /></td></tr>
+<tr class="separator:a4d2cae4a9598d24401fdc0067e879029"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a851551c2d9daf9b473da25aa32693e0e"><td class="memItemLeft" align="right" valign="top"><a id="a851551c2d9daf9b473da25aa32693e0e"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e">GUAC_ARGV_OPTION_ECHO</a>&#160;&#160;&#160;2</td></tr>
+<tr class="memdesc:a851551c2d9daf9b473da25aa32693e0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Option flag which declares to <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a> that the values received and accepted for the associated argument should be echoed to all connected users via outbound "argv" streams. <br /></td></tr>
+<tr class="separator:a851551c2d9daf9b473da25aa32693e0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd92a32fe9b7619580d50dbeaed8577d"><td class="memItemLeft" align="right" valign="top"><a id="abd92a32fe9b7619580d50dbeaed8577d"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d">GUAC_ARGV_MAX_LENGTH</a>&#160;&#160;&#160;16384</td></tr>
+<tr class="memdesc:abd92a32fe9b7619580d50dbeaed8577d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes to allow for any argument value received via an argv stream and processed using <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>, including null terminator. <br /></td></tr>
+<tr class="separator:abd92a32fe9b7619580d50dbeaed8577d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabc731c011c87d8db3580baa2f893b87"><td class="memItemLeft" align="right" valign="top"><a id="aabc731c011c87d8db3580baa2f893b87"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87">GUAC_ARGV_MAX_NAME_LENGTH</a>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:aabc731c011c87d8db3580baa2f893b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes to allow within the name of any argument registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a>, including null terminator. <br /></td></tr>
+<tr class="separator:aabc731c011c87d8db3580baa2f893b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e06672efd6fd7d2353d531be842d431"><td class="memItemLeft" align="right" valign="top"><a id="a9e06672efd6fd7d2353d531be842d431"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431">GUAC_ARGV_MAX_MIMETYPE_LENGTH</a>&#160;&#160;&#160;4096</td></tr>
+<tr class="memdesc:a9e06672efd6fd7d2353d531be842d431"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes to allow within the mimetype of any received argument value passed to a callback registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a>, including null terminator. <br /></td></tr>
+<tr class="separator:a9e06672efd6fd7d2353d531be842d431"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69d1917b4f8b6d91b6b6ae17feaac99f"><td class="memItemLeft" align="right" valign="top"><a id="a69d1917b4f8b6d91b6b6ae17feaac99f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f">GUAC_ARGV_MAX_REGISTERED</a>&#160;&#160;&#160;128</td></tr>
+<tr class="memdesc:a69d1917b4f8b6d91b6b6ae17feaac99f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of arguments that may be registered via <a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d" title="Waits for receipt of each of the given arguments via guac_argv_received().">guac_argv_await()</a> or guac_argv_await_async() before further argument registrations will fail. <br /></td></tr>
+<tr class="separator:a69d1917b4f8b6d91b6b6ae17feaac99f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to automatic handling of received "argv" instructions. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a4d2cae4a9598d24401fdc0067e879029"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d2cae4a9598d24401fdc0067e879029">&#9670;&nbsp;</a></span>GUAC_ARGV_OPTION_ONCE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_ARGV_OPTION_ONCE&#160;&#160;&#160;1</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Option flag which declares to <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a> that the associated argument should be processed exactly once. </p>
+<p>If multiple "argv" streams are received for the argument, only the first such stream is processed. Additional streams will be rejected. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv-constants_8h_source.html b/doc/1.3.0/libguac/argv-constants_8h_source.html
new file mode 100644
index 0000000..e9c27dc
--- /dev/null
+++ b/doc/1.3.0/libguac/argv-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">argv-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="argv-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_ARGV_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_ARGV_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029">   35</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_OPTION_ONCE 1</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e">   42</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_OPTION_ECHO 2</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d">   49</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_MAX_LENGTH 16384</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87">   55</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_MAX_NAME_LENGTH 256 </span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431">   62</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_MAX_MIMETYPE_LENGTH 4096</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f">   68</a></span>&#160;<span class="preprocessor">#define GUAC_ARGV_MAX_REGISTERED 128</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv-fntypes_8h.html b/doc/1.3.0/libguac/argv-fntypes_8h.html
new file mode 100644
index 0000000..560c493
--- /dev/null
+++ b/doc/1.3.0/libguac/argv-fntypes_8h.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">argv-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to automatic handling of received "argv" instructions.  
+<a href="#details">More...</a></p>
+
+<p><a href="argv-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a760d238328c8ac471f71dbe3559949d6"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, const char *mimetype, const char *name, const char *value, void *data)</td></tr>
+<tr class="memdesc:a760d238328c8ac471f71dbe3559949d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback which is invoked by the automatic "argv" handling when the full value of a received argument has been received.  <a href="#a760d238328c8ac471f71dbe3559949d6">More...</a><br /></td></tr>
+<tr class="separator:a760d238328c8ac471f71dbe3559949d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to automatic handling of received "argv" instructions. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a760d238328c8ac471f71dbe3559949d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a760d238328c8ac471f71dbe3559949d6">&#9670;&nbsp;</a></span>guac_argv_callback</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_argv_callback(<a class="el" href="structguac__user.html">guac_user</a> *user, const char *mimetype, const char *name, const char *value, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Callback which is invoked by the automatic "argv" handling when the full value of a received argument has been received. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the argument value stream.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being updated. It is up to the implementation of this handler to decide whether and how to update a connection parameter.</td></tr>
+    <tr><td class="paramname">value</td><td>The value of the received argument.</td></tr>
+    <tr><td class="paramname">data</td><td>Any arbitrary data that was provided when the received argument was registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the received argument value has been accepted and has either taken effect or is being intentionally ignored, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv-fntypes_8h_source.html b/doc/1.3.0/libguac/argv-fntypes_8h_source.html
new file mode 100644
index 0000000..5d3eb28
--- /dev/null
+++ b/doc/1.3.0/libguac/argv-fntypes_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">argv-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="argv-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_ARGV_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_ARGV_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">   58</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="argv-fntypes_8h_html_a760d238328c8ac471f71dbe3559949d6"><div class="ttname"><a href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a></div><div class="ttdeci">int guac_argv_callback(guac_user *user, const char *mimetype, const char *name, const char *value, void *data)</div><div class="ttdoc">Callback which is invoked by the automatic &quot;argv&quot; handling when the full value of a received argument...</div><div class="ttdef"><b>Definition:</b> argv-fntypes.h:58</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv_8h.html b/doc/1.3.0/libguac/argv_8h.html
new file mode 100644
index 0000000..fc5d64a
--- /dev/null
+++ b/doc/1.3.0/libguac/argv_8h.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">argv.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Convenience functions for processing parameter values that are submitted dynamically using "argv" instructions.  
+<a href="#details">More...</a></p>
+
+<p><a href="argv_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:abc25c66eecc88d82851aab121f93f599"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599">guac_argv_register</a> (const char *name, <a class="el" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a> *callback, void *data, int options)</td></tr>
+<tr class="memdesc:abc25c66eecc88d82851aab121f93f599"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers the given callback such that it is automatically invoked when an "argv" stream for an argument having the given name is processed using <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>.  <a href="#abc25c66eecc88d82851aab121f93f599">More...</a><br /></td></tr>
+<tr class="separator:abc25c66eecc88d82851aab121f93f599"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3390cfa416876991fcaf08871160415d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d">guac_argv_await</a> (const char **args)</td></tr>
+<tr class="memdesc:a3390cfa416876991fcaf08871160415d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for receipt of each of the given arguments via <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>.  <a href="#a3390cfa416876991fcaf08871160415d">More...</a><br /></td></tr>
+<tr class="separator:a3390cfa416876991fcaf08871160415d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb02a115909eed11fcf0d864de04ea8d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d">guac_argv_received</a> (<a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:adb02a115909eed11fcf0d864de04ea8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hands off management of the given <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, automatically processing data received over that stream as the value of the argument having the given name.  <a href="#adb02a115909eed11fcf0d864de04ea8d">More...</a><br /></td></tr>
+<tr class="separator:adb02a115909eed11fcf0d864de04ea8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a600211a457a9db1ad0741b13d0179d33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33">guac_argv_stop</a> ()</td></tr>
+<tr class="memdesc:a600211a457a9db1ad0741b13d0179d33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stops further automatic processing of received "argv" streams.  <a href="#a600211a457a9db1ad0741b13d0179d33">More...</a><br /></td></tr>
+<tr class="separator:a600211a457a9db1ad0741b13d0179d33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a8fe9c1813c0264dd8d9d598432ebc79c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">guac_argv_handler</a></td></tr>
+<tr class="memdesc:a8fe9c1813c0264dd8d9d598432ebc79c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience implementation of the "argv" instruction handler which automatically sends any required "ack" instructions and invokes <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>.  <a href="#a8fe9c1813c0264dd8d9d598432ebc79c">More...</a><br /></td></tr>
+<tr class="separator:a8fe9c1813c0264dd8d9d598432ebc79c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Convenience functions for processing parameter values that are submitted dynamically using "argv" instructions. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a3390cfa416876991fcaf08871160415d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3390cfa416876991fcaf08871160415d">&#9670;&nbsp;</a></span>guac_argv_await()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_argv_await </td>
+          <td>(</td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Waits for receipt of each of the given arguments via <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>. </p>
+<p>This function will block until either ALL of the given arguments have been received via <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a> or until automatic processing of received arguments is stopped with <a class="el" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33" title="Stops further automatic processing of received &quot;argv&quot; streams.">guac_argv_stop()</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">args</td><td>A NULL-terminated array of the names of all arguments that this function should wait for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if all of the specified arguments were received, non-zero if <a class="el" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33" title="Stops further automatic processing of received &quot;argv&quot; streams.">guac_argv_stop()</a> was called before all arguments were received. </dd></dl>
+
+</div>
+</div>
+<a id="adb02a115909eed11fcf0d864de04ea8d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb02a115909eed11fcf0d864de04ea8d">&#9670;&nbsp;</a></span>guac_argv_received()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_argv_received </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Hands off management of the given <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, automatically processing data received over that stream as the value of the argument having the given name. </p>
+<p>The argument must have already been registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a>. The blob_handler and end_handler of the given stream, if already set, will be overridden without regard to their current value.</p>
+<p>It is the responsibility of the caller to properly send any required "ack" instructions to accept or reject the received stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> that will receive the value of the argument having the given name.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be received over the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the argument being received.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if handling of the <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> has been successfully handed off, non-zero if the provided argument has not yet been registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a>. </dd></dl>
+
+</div>
+</div>
+<a id="abc25c66eecc88d82851aab121f93f599"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc25c66eecc88d82851aab121f93f599">&#9670;&nbsp;</a></span>guac_argv_register()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_argv_register </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>options</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Registers the given callback such that it is automatically invoked when an "argv" stream for an argument having the given name is processed using <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>. </p>
+<p>The maximum number of arguments that may be registered in this way is limited by GUAC_ARGV_MAX_REGISTERED. The maximum length of any provided argument name is limited by GUAC_ARGV_MAX_NAME_LENGTH.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87" title="The maximum number of bytes to allow within the name of any argument registered with guac_argv_regist...">GUAC_ARGV_MAX_NAME_LENGTH</a> </dd>
+<dd>
+<a class="el" href="argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f" title="The maximum number of arguments that may be registered via guac_argv_await() or guac_argv_await_async...">GUAC_ARGV_MAX_REGISTERED</a></dd>
+<dd>
+<a class="el" href="argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029" title="Option flag which declares to guac_argv_register() that the associated argument should be processed e...">GUAC_ARGV_OPTION_ONCE</a> </dd>
+<dd>
+<a class="el" href="argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e" title="Option flag which declares to guac_argv_register() that the values received and accepted for the asso...">GUAC_ARGV_OPTION_ECHO</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">name</td><td>The name of the argument that should be handled by the given callback.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke when the value of an argument having the given name has finished being received.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to be passed to the given callback when a value is received for the given argument.</td></tr>
+    <tr><td class="paramname">options</td><td>Bitwise OR of all option flags that should affect processing of this argument.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the callback was successfully registered, non-zero if the maximum number of registered callbacks has already been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a600211a457a9db1ad0741b13d0179d33"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a600211a457a9db1ad0741b13d0179d33">&#9670;&nbsp;</a></span>guac_argv_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_argv_stop </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Stops further automatic processing of received "argv" streams. </p>
+<p>Any call to <a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d" title="Waits for receipt of each of the given arguments via guac_argv_received().">guac_argv_await()</a> that is currently blocking will return, and any future calls to <a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d" title="Waits for receipt of each of the given arguments via guac_argv_received().">guac_argv_await()</a> will return immediately without blocking. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Variable Documentation</h2>
+<a id="a8fe9c1813c0264dd8d9d598432ebc79c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8fe9c1813c0264dd8d9d598432ebc79c">&#9670;&nbsp;</a></span>guac_argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a> guac_argv_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Convenience implementation of the "argv" instruction handler which automatically sends any required "ack" instructions and invokes <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d" title="Hands off management of the given guac_stream, automatically processing data received over that strea...">guac_argv_received()</a>. </p>
+<p>Only arguments that are registered with <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599" title="Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...">guac_argv_register()</a> will be processed. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/argv_8h_source.html b/doc/1.3.0/libguac/argv_8h_source.html
new file mode 100644
index 0000000..b48e380
--- /dev/null
+++ b/doc/1.3.0/libguac/argv_8h_source.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/argv.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">argv.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="argv_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_ARGV_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_ARGV_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="argv-constants_8h.html">argv-constants.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="argv-fntypes_8h.html">argv-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">int</span> <a class="code" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599">guac_argv_register</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a>* callback, <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> options);</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">int</span> <a class="code" href="argv_8h.html#a3390cfa416876991fcaf08871160415d">guac_argv_await</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">int</span> <a class="code" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d">guac_argv_received</a>(<a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="keywordtype">void</span> <a class="code" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33">guac_argv_stop</a>();</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">  125</a></span>&#160;<a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a> <a class="code" href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">guac_argv_handler</a>;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="ttc" id="argv_8h_html_adb02a115909eed11fcf0d864de04ea8d"><div class="ttname"><a href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d">guac_argv_received</a></div><div class="ttdeci">int guac_argv_received(guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Hands off management of the given guac_stream, automatically processing data received over that strea...</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="argv_8h_html_a600211a457a9db1ad0741b13d0179d33"><div class="ttname"><a href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33">guac_argv_stop</a></div><div class="ttdeci">void guac_argv_stop()</div><div class="ttdoc">Stops further automatic processing of received &quot;argv&quot; streams.</div></div>
+<div class="ttc" id="argv_8h_html_a3390cfa416876991fcaf08871160415d"><div class="ttname"><a href="argv_8h.html#a3390cfa416876991fcaf08871160415d">guac_argv_await</a></div><div class="ttdeci">int guac_argv_await(const char **args)</div><div class="ttdoc">Waits for receipt of each of the given arguments via guac_argv_received().</div></div>
+<div class="ttc" id="argv-constants_8h_html"><div class="ttname"><a href="argv-constants_8h.html">argv-constants.h</a></div><div class="ttdoc">Constants related to automatic handling of received &quot;argv&quot; instructions.</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="argv_8h_html_a8fe9c1813c0264dd8d9d598432ebc79c"><div class="ttname"><a href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">guac_argv_handler</a></div><div class="ttdeci">guac_user_argv_handler guac_argv_handler</div><div class="ttdoc">Convenience implementation of the &quot;argv&quot; instruction handler which automatically sends any required &quot;...</div><div class="ttdef"><b>Definition:</b> argv.h:125</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="argv-fntypes_8h_html"><div class="ttname"><a href="argv-fntypes_8h.html">argv-fntypes.h</a></div><div class="ttdoc">Function type definitions related to automatic handling of received &quot;argv&quot; instructions.</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="argv-fntypes_8h_html_a760d238328c8ac471f71dbe3559949d6"><div class="ttname"><a href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">guac_argv_callback</a></div><div class="ttdeci">int guac_argv_callback(guac_user *user, const char *mimetype, const char *name, const char *value, void *data)</div><div class="ttdoc">Callback which is invoked by the automatic &quot;argv&quot; handling when the full value of a received argument...</div><div class="ttdef"><b>Definition:</b> argv-fntypes.h:58</div></div>
+<div class="ttc" id="argv_8h_html_abc25c66eecc88d82851aab121f93f599"><div class="ttname"><a href="argv_8h.html#abc25c66eecc88d82851aab121f93f599">guac_argv_register</a></div><div class="ttdeci">int guac_argv_register(const char *name, guac_argv_callback *callback, void *data, int options)</div><div class="ttdoc">Registers the given callback such that it is automatically invoked when an &quot;argv&quot; stream for an argum...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio-fntypes_8h.html b/doc/1.3.0/libguac/audio-fntypes_8h.html
new file mode 100644
index 0000000..efd1a55
--- /dev/null
+++ b/doc/1.3.0/libguac/audio-fntypes_8h.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">audio-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a0b14abed1928c4e00129c7b87e391816"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a0b14abed1928c4e00129c7b87e391816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is opened.  <a href="#a0b14abed1928c4e00129c7b87e391816">More...</a><br /></td></tr>
+<tr class="separator:a0b14abed1928c4e00129c7b87e391816"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8736cc2b634df9c222cf09dcc6507162"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a8736cc2b634df9c222cf09dcc6507162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream needs to be flushed.  <a href="#a8736cc2b634df9c222cf09dcc6507162">More...</a><br /></td></tr>
+<tr class="separator:a8736cc2b634df9c222cf09dcc6507162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is closed.  <a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">More...</a><br /></td></tr>
+<tr class="separator:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when a new user has joined the Guacamole connection associated with the audio stream.  <a href="#a9d1fac87cc2ee072112d9d65d43ae70e">More...</a><br /></td></tr>
+<tr class="separator:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td></tr>
+<tr class="memdesc:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when PCM data is written to the audio stream.  <a href="#a57fe16e56c1c115b2321e50b9d9ce11a">More...</a><br /></td></tr>
+<tr class="separator:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to simple streaming audio. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a0b14abed1928c4e00129c7b87e391816"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b14abed1928c4e00129c7b87e391816">&#9670;&nbsp;</a></span>guac_audio_encoder_begin_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_begin_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is opened. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being opened. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa29dc3999c06e82c20d7a5e5d1e1565d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">&#9670;&nbsp;</a></span>guac_audio_encoder_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_end_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is closed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8736cc2b634df9c222cf09dcc6507162"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8736cc2b634df9c222cf09dcc6507162">&#9670;&nbsp;</a></span>guac_audio_encoder_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_flush_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream needs to be flushed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a9d1fac87cc2ee072112d9d65d43ae70e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9d1fac87cc2ee072112d9d65d43ae70e">&#9670;&nbsp;</a></span>guac_audio_encoder_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_join_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when a new user has joined the Guacamole connection associated with the audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that joined the connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a57fe16e56c1c115b2321e50b9d9ce11a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57fe16e56c1c115b2321e50b9d9ce11a">&#9670;&nbsp;</a></span>guac_audio_encoder_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_write_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when PCM data is written to the audio stream. </p>
+<p>The format of the PCM data is dictated by the properties of the audio stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream to which data is being written.</td></tr>
+    <tr><td class="paramname">pcm_data</td><td>A buffer containing the raw PCM data to be written.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the buffer that should be written to the audio stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio-fntypes_8h_source.html b/doc/1.3.0/libguac/audio-fntypes_8h_source.html
new file mode 100644
index 0000000..01ed2fb
--- /dev/null
+++ b/doc/1.3.0/libguac/audio-fntypes_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">   46</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">   54</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">   84</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pcm_data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio.</div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream.</div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio-types_8h.html b/doc/1.3.0/libguac/audio-types_8h.html
new file mode 100644
index 0000000..f7888c7
--- /dev/null
+++ b/doc/1.3.0/libguac/audio-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to simple streaming audio. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio-types_8h_source.html b/doc/1.3.0/libguac/audio-types_8h_source.html
new file mode 100644
index 0000000..aa34247
--- /dev/null
+++ b/doc/1.3.0/libguac/audio-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> <a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream.</div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder.</div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio_8h.html b/doc/1.3.0/libguac/audio_8h.html
new file mode 100644
index 0000000..5d363c4
--- /dev/null
+++ b/doc/1.3.0/libguac/audio_8h.html
@@ -0,0 +1,388 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">audio.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures used for providing simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary audio codec encoder.  <a href="structguac__audio__encoder.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic audio stream.  <a href="structguac__audio__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afc1fc0133504e718edf4756fac5e9c30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:afc1fc0133504e718edf4756fac5e9c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new audio stream at the client level which encodes audio data using the given encoder.  <a href="#afc1fc0133504e718edf4756fac5e9c30">More...</a><br /></td></tr>
+<tr class="separator:afc1fc0133504e718edf4756fac5e9c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:a0bbd483b1bfe5eede15539a0aacfedad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.  <a href="#a0bbd483b1bfe5eede15539a0aacfedad">More...</a><br /></td></tr>
+<tr class="separator:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a2b8e2f05a19b137454832a5dbc6c3864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the given audio stream that a user has joined the connection.  <a href="#a2b8e2f05a19b137454832a5dbc6c3864">More...</a><br /></td></tr>
+<tr class="separator:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc872292b5ba6c39905610b2bccbf31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:adcc872292b5ba6c39905610b2bccbf31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes and frees the given audio stream.  <a href="#adcc872292b5ba6c39905610b2bccbf31">More...</a><br /></td></tr>
+<tr class="separator:adcc872292b5ba6c39905610b2bccbf31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11bdfee60584106ba85d97a3f8273cc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream, const unsigned char *data, int length)</td></tr>
+<tr class="memdesc:a11bdfee60584106ba85d97a3f8273cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes PCM data to the given audio stream.  <a href="#a11bdfee60584106ba85d97a3f8273cc2">More...</a><br /></td></tr>
+<tr class="separator:a11bdfee60584106ba85d97a3f8273cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af75feccacea2b14ee946064cf623f143"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:af75feccacea2b14ee946064cf623f143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream.">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client.  <a href="#af75feccacea2b14ee946064cf623f143">More...</a><br /></td></tr>
+<tr class="separator:af75feccacea2b14ee946064cf623f143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures used for providing simple streaming audio. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a2b8e2f05a19b137454832a5dbc6c3864"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b8e2f05a19b137454832a5dbc6c3864">&#9670;&nbsp;</a></span>guac_audio_stream_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Notifies the given audio stream that a user has joined the connection. </p>
+<p>The audio stream itself may need to be restarted. and the audio stream will need to be created for the new user to ensure they can properly handle future data received along the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a> associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that has joined the Guacamole connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc1fc0133504e718edf4756fac5e9c30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc1fc0133504e718edf4756fac5e9c30">&#9670;&nbsp;</a></span>guac_audio_stream_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>* guac_audio_stream_alloc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new audio stream at the client level which encodes audio data using the given encoder. </p>
+<p>If NULL is specified for the encoder, an appropriate encoder will be selected based on the encoders built into libguac and the level of support declared by users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. The PCM format specified here (via rate, channels, and bps) must be the format used for all PCM data provided to the audio stream. The format may only be changed using <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad" title="Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.">guac_audio_stream_reset()</a>.</p>
+<p>If a new user joins the connection after the audio stream is created, that user will not be aware of the existence of the audio stream, and <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864" title="Notifies the given audio stream that a user has joined the connection.">guac_audio_stream_add_user()</a> will need to be invoked to recreate the stream for the new user.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> for which this audio stream is being allocated. The connection owner is given priority when determining the level of audio support. It is currently assumed that all other joining users on the connection will have the same level of audio support.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder.">guac_audio_encoder</a> to use when encoding audio, or NULL if libguac should select an appropriate built-in encoder on its own.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a>, or NULL if no audio stream could be allocated due to lack of support on the part of the connecting Guacamole client or due to reaching the maximum number of active streams. </dd></dl>
+
+</div>
+</div>
+<a id="af75feccacea2b14ee946064cf623f143"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af75feccacea2b14ee946064cf623f143">&#9670;&nbsp;</a></span>guac_audio_stream_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream.">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a> whose audio buffers should be flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="adcc872292b5ba6c39905610b2bccbf31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcc872292b5ba6c39905610b2bccbf31">&#9670;&nbsp;</a></span>guac_audio_stream_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Closes and frees the given audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0bbd483b1bfe5eede15539a0aacfedad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0bbd483b1bfe5eede15539a0aacfedad">&#9670;&nbsp;</a></span>guac_audio_stream_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample. </p>
+<p>If NULL is specified for the encoder, the encoder is left unchanged. If the encoder, rate, channels, and bits per sample are all identical to the current settings, this function has no effect.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a> to reset.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder.">guac_audio_encoder</a> to use when encoding audio, or NULL to leave this unchanged.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a11bdfee60584106ba85d97a3f8273cc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a11bdfee60584106ba85d97a3f8273cc2">&#9670;&nbsp;</a></span>guac_audio_stream_write_pcm()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_write_pcm </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned char *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes PCM data to the given audio stream. </p>
+<p>This PCM data will be automatically encoded by the audio encoder associated with this stream. The PCM data must be 2-channel, 44100 Hz, with signed 16-bit samples.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream.">guac_audio_stream</a> to write PCM data through.</td></tr>
+    <tr><td class="paramname">data</td><td>The PCM data to write.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes of PCM data provided. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/audio_8h_source.html b/doc/1.3.0/libguac/audio_8h_source.html
new file mode 100644
index 0000000..cb45b8b
--- /dev/null
+++ b/doc/1.3.0/libguac/audio_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-fntypes_8h.html">audio-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html">   35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">   41</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">   46</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>* <a class="code" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">   52</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>* <a class="code" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">   57</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>* <a class="code" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">   62</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>* <a class="code" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">   68</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>* <a class="code" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html">   72</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> {</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">   77</a></span>&#160;    <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* <a class="code" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">   82</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">   87</a></span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">   92</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a>;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">   98</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a>;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">  104</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">  109</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a>;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;};</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* <a class="code" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1de1be8874fb844002b92ac1e3813866"><div class="ttname"><a href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream::bps</a></div><div class="ttdeci">int bps</div><div class="ttdoc">The number of bits per sample per channel for PCM data.</div><div class="ttdef"><b>Definition:</b> audio.h:104</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_aef4ad4f1c298ac8e11fa69f13347c5a0"><div class="ttname"><a href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder::flush_handler</a></div><div class="ttdeci">guac_audio_encoder_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called when the audio stream is flushed.</div><div class="ttdef"><b>Definition:</b> audio.h:57</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af3b4811ba5a4f1a337d338777fe9049d"><div class="ttname"><a href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream::encoder</a></div><div class="ttdeci">guac_audio_encoder * encoder</div><div class="ttdoc">Arbitrary codec encoder which will receive raw PCM data.</div><div class="ttdef"><b>Definition:</b> audio.h:77</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a43d161556d3d55031ea486cc8b4ce3f6"><div class="ttname"><a href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder::begin_handler</a></div><div class="ttdeci">guac_audio_encoder_begin_handler * begin_handler</div><div class="ttdoc">Handler which will be called when the audio stream is first created.</div><div class="ttdef"><b>Definition:</b> audio.h:46</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="audio_8h_html_a11bdfee60584106ba85d97a3f8273cc2"><div class="ttname"><a href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a></div><div class="ttdeci">void guac_audio_stream_write_pcm(guac_audio_stream *stream, const unsigned char *data, int length)</div><div class="ttdoc">Writes PCM data to the given audio stream.</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="audio-fntypes_8h_html"><div class="ttname"><a href="audio-fntypes_8h.html">audio-fntypes.h</a></div><div class="ttdoc">Function type definitions related to simple streaming audio.</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_af2d0f6c14a6a30e4f91240865a680e5b"><div class="ttname"><a href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder::join_handler</a></div><div class="ttdeci">guac_audio_encoder_join_handler * join_handler</div><div class="ttdoc">Handler which will be called when a new user joins the Guacamole connection associated with an audio ...</div><div class="ttdef"><b>Definition:</b> audio.h:68</div></div>
+<div class="ttc" id="audio_8h_html_a2b8e2f05a19b137454832a5dbc6c3864"><div class="ttname"><a href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a></div><div class="ttdeci">void guac_audio_stream_add_user(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Notifies the given audio stream that a user has joined the connection.</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><div class="ttname"><a href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The client associated with this audio stream.</div><div class="ttdef"><b>Definition:</b> audio.h:82</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a1b74c3dd402b0a6afa5f5b9000d02c74"><div class="ttname"><a href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder::write_handler</a></div><div class="ttdeci">guac_audio_encoder_write_handler * write_handler</div><div class="ttdoc">Handler which will be called when PCM data is written to the audio stream for encoding.</div><div class="ttdef"><b>Definition:</b> audio.h:52</div></div>
+<div class="ttc" id="audio_8h_html_af75feccacea2b14ee946064cf623f143"><div class="ttname"><a href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a></div><div class="ttdeci">void guac_audio_stream_flush(guac_audio_stream *stream)</div><div class="ttdoc">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via guac_audi...</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a4d8f5cfc70ec54b97ba0c4eea596f894"><div class="ttname"><a href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream::stream</a></div><div class="ttdeci">guac_stream * stream</div><div class="ttdoc">The actual stream associated with this audio stream.</div><div class="ttdef"><b>Definition:</b> audio.h:87</div></div>
+<div class="ttc" id="audio_8h_html_adcc872292b5ba6c39905610b2bccbf31"><div class="ttname"><a href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a></div><div class="ttdeci">void guac_audio_stream_free(guac_audio_stream *stream)</div><div class="ttdoc">Closes and frees the given audio stream.</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a9ca03221b02d1206eb698f8ee936c4b7"><div class="ttname"><a href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Encoder-specific state data.</div><div class="ttdef"><b>Definition:</b> audio.h:109</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio.</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a51b8bfeae3709c1859710cbf1039e01b"><div class="ttname"><a href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder::mimetype</a></div><div class="ttdeci">const char * mimetype</div><div class="ttdoc">The mimetype of the audio data encoded by this audio encoder.</div><div class="ttdef"><b>Definition:</b> audio.h:41</div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream.</div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio_8h_html_afc1fc0133504e718edf4756fac5e9c30"><div class="ttname"><a href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a></div><div class="ttdeci">guac_audio_stream * guac_audio_stream_alloc(guac_client *client, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Allocates a new audio stream at the client level which encodes audio data using the given encoder.</div></div>
+<div class="ttc" id="audio_8h_html_a0bbd483b1bfe5eede15539a0aacfedad"><div class="ttname"><a href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a></div><div class="ttdeci">void guac_audio_stream_reset(guac_audio_stream *audio, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a6810293a6fa915e497d2dd1a643993d9"><div class="ttname"><a href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream::rate</a></div><div class="ttdeci">int rate</div><div class="ttdoc">The number of samples per second of PCM data sent to this stream.</div><div class="ttdef"><b>Definition:</b> audio.h:92</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder.</div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a6fbc4f8efe14c9a119fdfaaef78f7e92"><div class="ttname"><a href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder::end_handler</a></div><div class="ttdeci">guac_audio_encoder_end_handler * end_handler</div><div class="ttdoc">Handler which will be called when the audio stream is closed.</div><div class="ttdef"><b>Definition:</b> audio.h:62</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af9d1ad90194e24c2967e2f9f18de0ad6"><div class="ttname"><a href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream::channels</a></div><div class="ttdeci">int channels</div><div class="ttdoc">The number of audio channels per sample of PCM data.</div><div class="ttdef"><b>Definition:</b> audio.h:98</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened.</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/bc_s.png b/doc/1.3.0/libguac/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/doc/1.3.0/libguac/bc_s.png
Binary files differ
diff --git a/doc/1.3.0/libguac/bdwn.png b/doc/1.3.0/libguac/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/doc/1.3.0/libguac/bdwn.png
Binary files differ
diff --git a/doc/1.3.0/libguac/classes.html b/doc/1.3.0/libguac/classes.html
new file mode 100644
index 0000000..cee6e15
--- /dev/null
+++ b/doc/1.3.0/libguac/classes.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="structguac__stream.html">guac_stream</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__layer.html">guac_layer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__parser.html">guac_parser</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__pool.html">guac_pool</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
+</td><td></td><td valign="top"><a class="el" href="structguac__pool__int.html">guac_pool_int</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__user.html">guac_user</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="structguac__object.html">guac_object</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__client.html">guac_client</a>&#160;&#160;&#160;</td><td></td><td></td><td></td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="structguac__socket.html">guac_socket</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-constants_8h.html b/doc/1.3.0/libguac/client-constants_8h.html
new file mode 100644
index 0000000..4e75e44
--- /dev/null
+++ b/doc/1.3.0/libguac/client-constants_8h.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">client-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ad9f977643c5ffee5c1eeb426664796a1"><td class="memItemLeft" align="right" valign="top"><a id="ad9f977643c5ffee5c1eeb426664796a1"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">GUAC_CLIENT_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:ad9f977643c5ffee5c1eeb426664796a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:ad9f977643c5ffee5c1eeb426664796a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fda25106c4c454c22db2c7e042ee142"><td class="memItemLeft" align="right" valign="top"><a id="a6fda25106c4c454c22db2c7e042ee142"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">GUAC_CLIENT_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a6fda25106c4c454c22db2c7e042ee142"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a6fda25106c4c454c22db2c7e042ee142"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memItemLeft" align="right" valign="top"><a id="a8e2b48136e5c358e012a1558d5e5f0c2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">GUAC_CLIENT_ID_PREFIX</a>&#160;&#160;&#160;'$'</td></tr>
+<tr class="memdesc:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a client ID. <br /></td></tr>
+<tr class="separator:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memItemLeft" align="right" valign="top"><a id="a4bb4f5b852ac8c3e2d3c89cd5e63efd2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">GUAC_CLIENT_MOUSE_LEFT</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="memdesc:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the left mouse button is down. <br /></td></tr>
+<tr class="separator:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad14c5f1800aac863bbebcd676c5c2124"><td class="memItemLeft" align="right" valign="top"><a id="ad14c5f1800aac863bbebcd676c5c2124"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">GUAC_CLIENT_MOUSE_MIDDLE</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="memdesc:ad14c5f1800aac863bbebcd676c5c2124"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the middle mouse button is down. <br /></td></tr>
+<tr class="separator:ad14c5f1800aac863bbebcd676c5c2124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88917d2d7143a483c219eee62fd6317f"><td class="memItemLeft" align="right" valign="top"><a id="a88917d2d7143a483c219eee62fd6317f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">GUAC_CLIENT_MOUSE_RIGHT</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="memdesc:a88917d2d7143a483c219eee62fd6317f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the right mouse button is down. <br /></td></tr>
+<tr class="separator:a88917d2d7143a483c219eee62fd6317f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a134afd8a0d8f10a34af51fc70981e39d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">GUAC_CLIENT_MOUSE_SCROLL_UP</a>&#160;&#160;&#160;0x08</td></tr>
+<tr class="memdesc:a134afd8a0d8f10a34af51fc70981e39d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled up.  <a href="#a134afd8a0d8f10a34af51fc70981e39d">More...</a><br /></td></tr>
+<tr class="separator:a134afd8a0d8f10a34af51fc70981e39d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a771231574e9d303aa08fc1cecc9069f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a>&#160;&#160;&#160;0x10</td></tr>
+<tr class="memdesc:a771231574e9d303aa08fc1cecc9069f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled down.  <a href="#a771231574e9d303aa08fc1cecc9069f0">More...</a><br /></td></tr>
+<tr class="separator:a771231574e9d303aa08fc1cecc9069f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">GUAC_BUFFER_POOL_INITIAL_SIZE</a>&#160;&#160;&#160;1024</td></tr>
+<tr class="memdesc:aa8a296e1032ff408ab141b0765fb9bfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of buffers to create before allowing free'd buffers to be reclaimed.  <a href="#aa8a296e1032ff408ab141b0765fb9bfb">More...</a><br /></td></tr>
+<tr class="separator:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="aa8a296e1032ff408ab141b0765fb9bfb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8a296e1032ff408ab141b0765fb9bfb">&#9670;&nbsp;</a></span>GUAC_BUFFER_POOL_INITIAL_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_BUFFER_POOL_INITIAL_SIZE&#160;&#160;&#160;1024</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The minimum number of buffers to create before allowing free'd buffers to be reclaimed. </p>
+<p>In the case a protocol rapidly creates, uses, and destroys buffers, this can prevent unnecessary reuse of the same buffer (which would make draw operations unnecessarily synchronous). </p>
+
+</div>
+</div>
+<a id="a771231574e9d303aa08fc1cecc9069f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a771231574e9d303aa08fc1cecc9069f0">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_DOWN</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN&#160;&#160;&#160;0x10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+<a id="a134afd8a0d8f10a34af51fc70981e39d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a134afd8a0d8f10a34af51fc70981e39d">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_UP</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_UP&#160;&#160;&#160;0x08</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-constants_8h_source.html b/doc/1.3.0/libguac/client-constants_8h_source.html
new file mode 100644
index 0000000..619a875
--- /dev/null
+++ b/doc/1.3.0/libguac/client-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">   33</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MAX_STREAMS 64</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">   38</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">   43</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_ID_PREFIX &#39;$&#39;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">   48</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_LEFT 0x01</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">   53</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_MIDDLE 0x02</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">   58</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_RIGHT 0x04</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">   67</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_UP 0x08</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">   76</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN 0x10</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">   84</a></span>&#160;<span class="preprocessor">#define GUAC_BUFFER_POOL_INITIAL_SIZE 1024</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-fntypes_8h.html b/doc/1.3.0/libguac/client-fntypes_8h.html
new file mode 100644
index 0000000..f328023
--- /dev/null
+++ b/doc/1.3.0/libguac/client-fntypes_8h.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">client-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a7f8c6986f3db9818d016eee6fa562577"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a7f8c6986f3db9818d016eee6fa562577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing up any extra data allocated by the client implementation.  <a href="#a7f8c6986f3db9818d016eee6fa562577">More...</a><br /></td></tr>
+<tr class="separator:a7f8c6986f3db9818d016eee6fa562577"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23837e22dbfe152719d596e6918bad3c"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a23837e22dbfe152719d596e6918bad3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> instance.  <a href="#a23837e22dbfe152719d596e6918bad3c">More...</a><br /></td></tr>
+<tr class="separator:a23837e22dbfe152719d596e6918bad3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905b087a47315e1836293839daf1f46c"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a905b087a47315e1836293839daf1f46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  <a href="#a905b087a47315e1836293839daf1f46c">More...</a><br /></td></tr>
+<tr class="separator:a905b087a47315e1836293839daf1f46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a7f8c6986f3db9818d016eee6fa562577"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f8c6986f3db9818d016eee6fa562577">&#9670;&nbsp;</a></span>guac_client_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_free_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing up any extra data allocated by the client implementation. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose extra data should be freed (if any).</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data was successfully freed, non-zero if an error prevents the data from being freed. </dd></dl>
+
+</div>
+</div>
+<a id="a905b087a47315e1836293839daf1f46c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a905b087a47315e1836293839daf1f46c">&#9670;&nbsp;</a></span>guac_client_init_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_init_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+<p>In practice, this function will be called "guac_client_init".</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> that must be initialized.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero if initialization fails for any reason. </dd></dl>
+
+</div>
+</div>
+<a id="a23837e22dbfe152719d596e6918bad3c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23837e22dbfe152719d596e6918bad3c">&#9670;&nbsp;</a></span>guac_client_log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_client_log_handler(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client related to the message being logged.</td></tr>
+    <tr><td class="paramname">level</td><td>The log level at which to log the given message.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string, defining the message to be logged.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the conversion specifiers ("%s", "%i", etc.) within the format string. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-fntypes_8h_source.html b/doc/1.3.0/libguac/client-fntypes_8h_source.html
new file mode 100644
index 0000000..ac41a8c
--- /dev/null
+++ b/doc/1.3.0/libguac/client-fntypes_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">   49</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list args);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">   80</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects.</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation.</div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol.</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a905b087a47315e1836293839daf1f46c"><div class="ttname"><a href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a></div><div class="ttdeci">int guac_client_init_handler(guac_client *client)</div><div class="ttdoc">The entry point of a client plugin which must initialize the given guac_client.</div><div class="ttdef"><b>Definition:</b> client-fntypes.h:80</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance.</div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-types_8h.html b/doc/1.3.0/libguac/client-types_8h.html
new file mode 100644
index 0000000..769b3c9
--- /dev/null
+++ b/doc/1.3.0/libguac/client-types_8h.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">client-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a6f7e91d6dcb20598953948f077910c3b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> { <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>, 
+<a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a>
+ }</td></tr>
+<tr class="memdesc:a6f7e91d6dcb20598953948f077910c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of the Guacamole client.  <a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">More...</a><br /></td></tr>
+<tr class="separator:a6f7e91d6dcb20598953948f077910c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfeeb4ff06541220c91ce3401d840727"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> { <br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7, 
+<br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8
+<br />
+ }</td></tr>
+<tr class="memdesc:adfeeb4ff06541220c91ce3401d840727"><td class="mdescLeft">&#160;</td><td class="mdescRight">All supported log levels used by the logging subsystem of each Guacamole client.  <a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">More...</a><br /></td></tr>
+<tr class="separator:adfeeb4ff06541220c91ce3401d840727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="adfeeb4ff06541220c91ce3401d840727"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adfeeb4ff06541220c91ce3401d840727">&#9670;&nbsp;</a></span>guac_client_log_level</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All supported log levels used by the logging subsystem of each Guacamole client. </p>
+<p>With the exception of GUAC_LOG_TRACE, these log levels correspond to a subset of the log levels defined by RFC 5424. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"></a>GUAC_LOG_ERROR&#160;</td><td class="fielddoc"><p>Fatal errors. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"></a>GUAC_LOG_WARNING&#160;</td><td class="fielddoc"><p>Non-fatal conditions that indicate problems. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"></a>GUAC_LOG_INFO&#160;</td><td class="fielddoc"><p>Informational messages of general interest to users or administrators. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"></a>GUAC_LOG_DEBUG&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, but are otherwise not useful to users or administrators. </p>
+<p>It is expected that debug level messages, while verbose, will not negatively affect performance. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"></a>GUAC_LOG_TRACE&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-level that they may affect performance. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a6f7e91d6dcb20598953948f077910c3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f7e91d6dcb20598953948f077910c3b">&#9670;&nbsp;</a></span>guac_client_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of the Guacamole client. </p>
+<p>Currently, the only two states are GUAC_CLIENT_RUNNING and GUAC_CLIENT_STOPPING. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"></a>GUAC_CLIENT_RUNNING&#160;</td><td class="fielddoc"><p>The state of the client from when it has been allocated by the main daemon until it is killed or disconnected. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"></a>GUAC_CLIENT_STOPPING&#160;</td><td class="fielddoc"><p>The state of the client when a stop has been requested, signalling the I/O threads to shutdown. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client-types_8h_source.html b/doc/1.3.0/libguac/client-types_8h_source.html
new file mode 100644
index 0000000..364e961
--- /dev/null
+++ b/doc/1.3.0/libguac/client-types_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> <a class="code" href="structguac__client.html">guac_client</a>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">   41</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">   47</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">   53</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;} <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">   62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">   67</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">   72</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4,</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">   77</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">   85</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7,</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">   92</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;} <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a></div><div class="ttdoc">Non-fatal conditions that indicate problems.</div><div class="ttdef"><b>Definition:</b> client-types.h:72</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a></div><div class="ttdoc">Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-l...</div><div class="ttdef"><b>Definition:</b> client-types.h:92</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a></div><div class="ttdoc">The state of the client from when it has been allocated by the main daemon until it is killed or disc...</div><div class="ttdef"><b>Definition:</b> client-types.h:47</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="ttdoc">The state of the client when a stop has been requested, signalling the I/O threads to shutdown.</div><div class="ttdef"><b>Definition:</b> client-types.h:53</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a></div><div class="ttdoc">Informational messages of general interest to users or administrators.</div><div class="ttdef"><b>Definition:</b> client-types.h:77</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a></div><div class="ttdoc">Fatal errors.</div><div class="ttdef"><b>Definition:</b> client-types.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a></div><div class="ttdoc">Informational messages which can be useful for debugging, but are otherwise not useful to users or ad...</div><div class="ttdef"><b>Definition:</b> client-types.h:85</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client_8h.html b/doc/1.3.0/libguac/client_8h.html
new file mode 100644
index 0000000..1d0b419
--- /dev/null
+++ b/doc/1.3.0/libguac/client_8h.html
@@ -0,0 +1,1408 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">client.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Functions and structure contents for the Guacamole proxy client.  
+<a href="#details">More...</a></p>
+
+<p><a href="client_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html">guac_client</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guacamole proxy client.  <a href="structguac__client.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a> ()</td></tr>
+<tr class="memdesc:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  <a href="#a33bad42d21ccb561aa71c4f04ae9b22a">More...</a><br /></td></tr>
+<tr class="separator:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a76cdc454a23fdcbb70d56f923f6b6427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free all resources associated with the given client.  <a href="#a76cdc454a23fdcbb70d56f923f6b6427">More...</a><br /></td></tr>
+<tr class="separator:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad53666bbe29346497cabb04fc9628208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ad53666bbe29346497cabb04fc9628208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#ad53666bbe29346497cabb04fc9628208">More...</a><br /></td></tr>
+<tr class="separator:ad53666bbe29346497cabb04fc9628208"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37a0fa9cfc4c02236085e3852972f494"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a37a0fa9cfc4c02236085e3852972f494"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#a37a0fa9cfc4c02236085e3852972f494">More...</a><br /></td></tr>
+<tr class="separator:a37a0fa9cfc4c02236085e3852972f494"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a022d4b5587c84f2963b176ab7999aa1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a022d4b5587c84f2963b176ab7999aa1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully.  <a href="#a022d4b5587c84f2963b176ab7999aa1b">More...</a><br /></td></tr>
+<tr class="separator:a022d4b5587c84f2963b176ab7999aa1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62a29f7820deaff00a10ec79aa81aed4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a62a29f7820deaff00a10ec79aa81aed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a62a29f7820deaff00a10ec79aa81aed4">More...</a><br /></td></tr>
+<tr class="separator:a62a29f7820deaff00a10ec79aa81aed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">More...</a><br /></td></tr>
+<tr class="separator:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af661d3fedd9683631bdc7d1e3205e379"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:af661d3fedd9683631bdc7d1e3205e379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new buffer (invisible layer).  <a href="#af661d3fedd9683631bdc7d1e3205e379">More...</a><br /></td></tr>
+<tr class="separator:af661d3fedd9683631bdc7d1e3205e379"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2085758db585bb9d09d3860ec0fc9587"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2085758db585bb9d09d3860ec0fc9587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new layer.  <a href="#a2085758db585bb9d09d3860ec0fc9587">More...</a><br /></td></tr>
+<tr class="separator:a2085758db585bb9d09d3860ec0fc9587"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:afc03a32b3113d9a95700cac54f1cbd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer().  <a href="#afc03a32b3113d9a95700cac54f1cbd4b">More...</a><br /></td></tr>
+<tr class="separator:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e5b374211012d1897792335112dcb89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a4e5b374211012d1897792335112dcb89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer().  <a href="#a4e5b374211012d1897792335112dcb89">More...</a><br /></td></tr>
+<tr class="separator:a4e5b374211012d1897792335112dcb89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">More...</a><br /></td></tr>
+<tr class="separator:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0103a5aae8ba76badd2e68e827f6782"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:af0103a5aae8ba76badd2e68e827f6782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream.">guac_client_alloc_stream()</a>.  <a href="#af0103a5aae8ba76badd2e68e827f6782">More...</a><br /></td></tr>
+<tr class="separator:af0103a5aae8ba76badd2e68e827f6782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af66d105dfd1453ec46b423e6b25fa371"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:af66d105dfd1453ec46b423e6b25fa371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the given user to the internal list of connected users.  <a href="#af66d105dfd1453ec46b423e6b25fa371">More...</a><br /></td></tr>
+<tr class="separator:af66d105dfd1453ec46b423e6b25fa371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02832d5be5330dc3de524b497b7c6dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a02832d5be5330dc3de524b497b7c6dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler.  <a href="#a02832d5be5330dc3de524b497b7c6dfa">More...</a><br /></td></tr>
+<tr class="separator:a02832d5be5330dc3de524b497b7c6dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af652f3db0f89d488cef6d90f612a2077"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af652f3db0f89d488cef6d90f612a2077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function on all currently-connected users of the given client.  <a href="#af652f3db0f89d488cef6d90f612a2077">More...</a><br /></td></tr>
+<tr class="separator:af652f3db0f89d488cef6d90f612a2077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the currently-connected user that is marked as the owner.  <a href="#af3f4ed85d98b16376e2cdc031ff1b44a">More...</a><br /></td></tr>
+<tr class="separator:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:a7fbba296d1ec3e78dc4b79884f590a03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the given user ONLY if they are currently connected.  <a href="#a7fbba296d1ec3e78dc4b79884f590a03">More...</a><br /></td></tr>
+<tr class="separator:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of the current frame by sending a "sync" instruction to all connected users.  <a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">More...</a><br /></td></tr>
+<tr class="separator:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa2b90d686c56cf753c36718ec085f35"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, const char *protocol)</td></tr>
+<tr class="memdesc:afa2b90d686c56cf753c36718ec085f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol.  <a href="#afa2b90d686c56cf753c36718ec085f35">More...</a><br /></td></tr>
+<tr class="separator:afa2b90d686c56cf753c36718ec085f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates and returns the approximate processing lag experienced by the pool of users.  <a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">More...</a><br /></td></tr>
+<tr class="separator:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef81b4409308c195d26db3443e9e76fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aef81b4409308c195d26db3443e9e76fe">guac_client_owner_send_required</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, const char **required)</td></tr>
+<tr class="memdesc:aef81b4409308c195d26db3443e9e76fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a request to the owner of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> for parameters required to continue the connection started by the client.  <a href="#aef81b4409308c195d26db3443e9e76fe">More...</a><br /></td></tr>
+<tr class="separator:aef81b4409308c195d26db3443e9e76fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client.  <a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">More...</a><br /></td></tr>
+<tr class="separator:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a317b9d79afd0b0b473d7d359e0c33750"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a317b9d79afd0b0b473d7d359e0c33750"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a317b9d79afd0b0b473d7d359e0c33750">More...</a><br /></td></tr>
+<tr class="separator:a317b9d79afd0b0b473d7d359e0c33750"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#aa51ede155ad7777bc8d2e82aa6e779bf">More...</a><br /></td></tr>
+<tr class="separator:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">More...</a><br /></td></tr>
+<tr class="separator:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a347fdf77fb6e0829f00513e6b4da406f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a347fdf77fb6e0829f00513e6b4da406f">guac_client_owner_supports_required</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a347fdf77fb6e0829f00513e6b4da406f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the owner of the given client supports the "required" instruction, returning non-zero if the client owner does support the instruction, or zero if the owner does not.  <a href="#a347fdf77fb6e0829f00513e6b4da406f">More...</a><br /></td></tr>
+<tr class="separator:a347fdf77fb6e0829f00513e6b4da406f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79cc74558e8f64807ea2847fbacd20e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a79cc74558e8f64807ea2847fbacd20e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether all users of the given client support WebP.  <a href="#a79cc74558e8f64807ea2847fbacd20e3">More...</a><br /></td></tr>
+<tr class="separator:a79cc74558e8f64807ea2847fbacd20e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a336a485c006394d5eea88bf6d8d422d8"><td class="memItemLeft" align="right" valign="top"><a id="a336a485c006394d5eea88bf6d8d422d8"></a>
+const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></td></tr>
+<tr class="memdesc:a336a485c006394d5eea88bf6d8d422d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default Guacamole client layer, layer 0. <br /></td></tr>
+<tr class="separator:a336a485c006394d5eea88bf6d8d422d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Functions and structure contents for the Guacamole proxy client. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a62a29f7820deaff00a10ec79aa81aed4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a62a29f7820deaff00a10ec79aa81aed4">&#9670;&nbsp;</a></span>guac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af66d105dfd1453ec46b423e6b25fa371"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af66d105dfd1453ec46b423e6b25fa371">&#9670;&nbsp;</a></span>guac_client_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Adds the given user to the internal list of connected users. </p>
+<p>Future writes to the broadcast socket stored within <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> will also write to this user. The join handler of this <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> will be called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to add the user to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to add. </td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments to pass to the new user. </td></tr>
+    <tr><td class="paramname">argv</td><td>An array of strings containing the argument values being passed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user was added successfully, non-zero if the user could not join the connection. </dd></dl>
+
+</div>
+</div>
+<a id="a33bad42d21ccb561aa71c4f04ae9b22a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33bad42d21ccb561aa71c4f04ae9b22a">&#9670;&nbsp;</a></span>guac_client_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__client.html">guac_client</a>* guac_client_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+<p>This new <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> has no handlers set, but is otherwise usable.</p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the new client. </dd></dl>
+
+</div>
+</div>
+<a id="af661d3fedd9683631bdc7d1e3205e379"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af661d3fedd9683631bdc7d1e3205e379">&#9670;&nbsp;</a></span>guac_client_alloc_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new buffer (invisible layer). </p>
+<p>An arbitrary index is automatically assigned if no existing buffer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available buffer, or a newly allocated buffer. </dd></dl>
+
+</div>
+</div>
+<a id="a2085758db585bb9d09d3860ec0fc9587"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2085758db585bb9d09d3860ec0fc9587">&#9670;&nbsp;</a></span>guac_client_alloc_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new layer. </p>
+<p>An arbitrary index is automatically assigned if no existing layer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the layer buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available layer, or a newly allocated layer. </dd></dl>
+
+</div>
+</div>
+<a id="a1bea3499e21736b4ea0fb949d3bc8ab9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">&#9670;&nbsp;</a></span>guac_client_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_client_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a686fc65f5b1afcc3f3b53e36cd1a2ebc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">&#9670;&nbsp;</a></span>guac_client_end_frame()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_end_frame </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of the current frame by sending a "sync" instruction to all connected users. </p>
+<p>This instruction will contain the current timestamp. The last_sent_timestamp member of <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> will be updated accordingly.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> which has finished a frame. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="af3f4ed85d98b16376e2cdc031ff1b44a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3f4ed85d98b16376e2cdc031ff1b44a">&#9670;&nbsp;</a></span>guac_client_for_owner()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_owner </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the currently-connected user that is marked as the owner. </p>
+<p>The owner of a connection is the user that established the initial connection that created the connection (the first user to connect and join). The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> and the specified arbitrary data. If the owner has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to retrieve the owner from.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the user marked as the owner of the connection. NULL will be passed to this callback instead if there is no owner.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="a7fbba296d1ec3e78dc4b79884f590a03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fbba296d1ec3e78dc4b79884f590a03">&#9670;&nbsp;</a></span>guac_client_for_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the given user ONLY if they are currently connected. </p>
+<p>The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> and the specified arbitrary data. If the provided user doesn't exist or has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client that the given user is expected to be associated with.</td></tr>
+    <tr><td class="paramname">user</td><td>The user to provide to the given callback if valid. The pointer need not even point to properly allocated memory; the user will only be passed to the callback function if they are valid, and the provided user pointer will not be dereferenced during this process.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the given user if they are valid. NULL will be passed to this callback instead if the user is not valid.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="af652f3db0f89d488cef6d90f612a2077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af652f3db0f89d488cef6d90f612a2077">&#9670;&nbsp;</a></span>guac_client_foreach_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_foreach_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function on all currently-connected users of the given client. </p>
+<p>The function will be given a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> and the specified arbitrary data. The value returned by the callback will be ignored.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function. Though the callback MAY invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a>, doing so should not be necessary, and may indicate poor design choices.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose users should be iterated.</td></tr>
+    <tr><td class="paramname">callback</td><td>The function to call for each user.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the callback each time it is invoked. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a76cdc454a23fdcbb70d56f923f6b6427"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a76cdc454a23fdcbb70d56f923f6b6427">&#9670;&nbsp;</a></span>guac_client_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free all resources associated with the given client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to free all reasources of. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc03a32b3113d9a95700cac54f1cbd4b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc03a32b3113d9a95700cac54f1cbd4b">&#9670;&nbsp;</a></span>guac_client_free_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available buffers. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a4e5b374211012d1897792335112dcb89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4e5b374211012d1897792335112dcb89">&#9670;&nbsp;</a></span>guac_client_free_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the layer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af0103a5aae8ba76badd2e68e827f6782"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0103a5aae8ba76badd2e68e827f6782">&#9670;&nbsp;</a></span>guac_client_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream.">guac_client_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to return the stream to.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa2b94b3145fcebf2d7b1999df11d0b2c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">&#9670;&nbsp;</a></span>guac_client_get_processing_lag()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_get_processing_lag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calculates and returns the approximate processing lag experienced by the pool of users. </p>
+<p>The processing lag is the difference in time between server and client due purely to data processing and excluding network delays.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> to calculate the processing lag of.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The approximate processing lag of the pool of users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>, in milliseconds. </dd></dl>
+
+</div>
+</div>
+<a id="afa2b90d686c56cf753c36718ec085f35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa2b90d686c56cf753c36718ec085f35">&#9670;&nbsp;</a></span>guac_client_load_plugin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_load_plugin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol. </p>
+<p>This will automatically invoke guac_client_init within the plugin for the given protocol.</p>
+<p>Note that the connection will likely not be established until the first user (the "owner") is added to the client.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> to initialize. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The name of the protocol to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if initialization was successful, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad53666bbe29346497cabb04fc9628208"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad53666bbe29346497cabb04fc9628208">&#9670;&nbsp;</a></span>guac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aef81b4409308c195d26db3443e9e76fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aef81b4409308c195d26db3443e9e76fe">&#9670;&nbsp;</a></span>guac_client_owner_send_required()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_owner_send_required </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>required</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a request to the owner of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> for parameters required to continue the connection started by the client. </p>
+<p>The function returns zero on success or non-zero on failure.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client where additional connection parameters are required.</td></tr>
+    <tr><td class="paramname">required</td><td>The NULL-terminated array of required parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on failure. </dd></dl>
+
+</div>
+</div>
+<a id="a347fdf77fb6e0829f00513e6b4da406f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a347fdf77fb6e0829f00513e6b4da406f">&#9670;&nbsp;</a></span>guac_client_owner_supports_required()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_owner_supports_required </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether the owner of the given client supports the "required" instruction, returning non-zero if the client owner does support the instruction, or zero if the owner does not. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client whose owner should be checked for supporting the "required" instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the owner of the given client supports the "required" instruction, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a02832d5be5330dc3de524b497b7c6dfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02832d5be5330dc3de524b497b7c6dfa">&#9670;&nbsp;</a></span>guac_client_remove_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_remove_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to remove. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a022d4b5587c84f2963b176ab7999aa1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a022d4b5587c84f2963b176ab7999aa1b">&#9670;&nbsp;</a></span>guac_client_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully. </p>
+<p>This is a completely cooperative signal, and can be ignored by the client or the hosting daemon.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6c9d8717d4b8eaa50dbd7301af27a06f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">&#9670;&nbsp;</a></span>guac_client_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the argument value stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa51ede155ad7777bc8d2e82aa6e779bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa51ede155ad7777bc8d2e82aa6e779bf">&#9670;&nbsp;</a></span>guac_client_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a317b9d79afd0b0b473d7d359e0c33750"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a317b9d79afd0b0b473d7d359e0c33750">&#9670;&nbsp;</a></span>guac_client_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a55adbd5ee8f27c4df4394dbb5bf9416e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">&#9670;&nbsp;</a></span>guac_client_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP.">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a79cc74558e8f64807ea2847fbacd20e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79cc74558e8f64807ea2847fbacd20e3">&#9670;&nbsp;</a></span>guac_client_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether all users of the given client support WebP. </p>
+<p>If any user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client whose users should be checked for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the all users of the given client claim to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a4c0eccd7d0ed3dbf3e7941ce297e0224"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">&#9670;&nbsp;</a></span>vguac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a37a0fa9cfc4c02236085e3852972f494"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37a0fa9cfc4c02236085e3852972f494">&#9670;&nbsp;</a></span>vguac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/client_8h_source.html b/doc/1.3.0/libguac/client_8h_source.html
new file mode 100644
index 0000000..2c303a2
--- /dev/null
+++ b/doc/1.3.0/libguac/client_8h_source.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-fntypes_8h.html">client-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-constants_8h.html">client-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__client.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">   57</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">   65</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> <a class="code" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">   72</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">   78</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a>;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">  101</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">  125</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __buffer_pool;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __layer_pool;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">  159</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    pthread_rwlock_t __users_lock;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __users;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __owner;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">  184</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">  207</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">  225</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">  251</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">void</span>* __plugin_handle;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;};</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a>();</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#aef81b4409308c195d26db3443e9e76fe">guac_client_owner_send_required</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <span class="keyword">const</span> <span class="keywordtype">char</span>** required);</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a347fdf77fb6e0829f00513e6b4da406f">guac_client_owner_supports_required</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a>;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;</div><div class="ttc" id="structguac__client_html_a0adcf1953de6c315c2da9dac4b3eceb3"><div class="ttname"><a href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client::join_handler</a></div><div class="ttdeci">guac_user_join_handler * join_handler</div><div class="ttdoc">Handler for join events, called whenever a new user is joining an active connection.</div><div class="ttdef"><b>Definition:</b> client.h:207</div></div>
+<div class="ttc" id="client_8h_html_af652f3db0f89d488cef6d90f612a2077"><div class="ttname"><a href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a></div><div class="ttdeci">void guac_client_foreach_user(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function on all currently-connected users of the given client.</div></div>
+<div class="ttc" id="client_8h_html_a686fc65f5b1afcc3f3b53e36cd1a2ebc"><div class="ttname"><a href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a></div><div class="ttdeci">int guac_client_end_frame(guac_client *client)</div><div class="ttdoc">Marks the end of the current frame by sending a &quot;sync&quot; instruction to all connected users.</div></div>
+<div class="ttc" id="client_8h_html_a4c0eccd7d0ed3dbf3e7941ce297e0224"><div class="ttname"><a href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a></div><div class="ttdeci">void vguac_client_abort(guac_client *client, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a336a485c006394d5eea88bf6d8d422d8"><div class="ttname"><a href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></div><div class="ttdeci">const guac_layer * GUAC_DEFAULT_LAYER</div><div class="ttdoc">The default Guacamole client layer, layer 0.</div></div>
+<div class="ttc" id="client_8h_html_a79cc74558e8f64807ea2847fbacd20e3"><div class="ttname"><a href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a></div><div class="ttdeci">int guac_client_supports_webp(guac_client *client)</div><div class="ttdoc">Returns whether all users of the given client support WebP.</div></div>
+<div class="ttc" id="client-constants_8h_html"><div class="ttname"><a href="client-constants_8h.html">client-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="client_8h_html_afa2b90d686c56cf753c36718ec085f35"><div class="ttname"><a href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a></div><div class="ttdeci">int guac_client_load_plugin(guac_client *client, const char *protocol)</div><div class="ttdoc">Initializes the given guac_client using the initialization routine provided by the plugin correspondi...</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="structguac__client_html_aa634856fd3c522377ba7345f3308000e"><div class="ttname"><a href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">The guac_socket structure to be used to communicate with all connected web-clients (users).</div><div class="ttdef"><b>Definition:</b> client.h:57</div></div>
+<div class="ttc" id="structguac__client_html_a0f3069566c7a5ca76ce4369715589dad"><div class="ttname"><a href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client::last_sent_timestamp</a></div><div class="ttdeci">guac_timestamp last_sent_timestamp</div><div class="ttdoc">The time (in milliseconds) that the last sync message was sent to the client.</div><div class="ttdef"><b>Definition:</b> client.h:78</div></div>
+<div class="ttc" id="structguac__client_html_a0e07a8086579ede2c692460998a87cac"><div class="ttname"><a href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client::args</a></div><div class="ttdeci">const char ** args</div><div class="ttdoc">NULL-terminated array of all arguments accepted by this client , in order.</div><div class="ttdef"><b>Definition:</b> client.h:251</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="client_8h_html_a1bea3499e21736b4ea0fb949d3bc8ab9"><div class="ttname"><a href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_client_alloc_stream(guac_client *client)</div><div class="ttdoc">Allocates a new stream.</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects.</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="structguac__client_html_a0569bc7eea8d37b5bd95bcd3821ca0a3"><div class="ttname"><a href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary reference to proxy client-specific data.</div><div class="ttdef"><b>Definition:</b> client.h:72</div></div>
+<div class="ttc" id="client_8h_html_a4e5b374211012d1897792335112dcb89"><div class="ttname"><a href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a></div><div class="ttdeci">void guac_client_free_layer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent...</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="client_8h_html_af661d3fedd9683631bdc7d1e3205e379"><div class="ttname"><a href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_buffer(guac_client *client)</div><div class="ttdoc">Allocates a new buffer (invisible layer).</div></div>
+<div class="ttc" id="client_8h_html_a347fdf77fb6e0829f00513e6b4da406f"><div class="ttname"><a href="client_8h.html#a347fdf77fb6e0829f00513e6b4da406f">guac_client_owner_supports_required</a></div><div class="ttdeci">int guac_client_owner_supports_required(guac_client *client)</div><div class="ttdoc">Returns whether the owner of the given client supports the &quot;required&quot; instruction,...</div></div>
+<div class="ttc" id="client_8h_html_a62a29f7820deaff00a10ec79aa81aed4"><div class="ttname"><a href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a></div><div class="ttdeci">void guac_client_abort(guac_client *client, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a37a0fa9cfc4c02236085e3852972f494"><div class="ttname"><a href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a></div><div class="ttdeci">void vguac_client_log(guac_client *client, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given client.</div></div>
+<div class="ttc" id="structguac__client_html_a3eb24ba13be9ecb3a8c6f64a73932f43"><div class="ttname"><a href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client::log_handler</a></div><div class="ttdeci">guac_client_log_handler * log_handler</div><div class="ttdoc">Logging handler.</div><div class="ttdef"><b>Definition:</b> client.h:125</div></div>
+<div class="ttc" id="client_8h_html_aa51ede155ad7777bc8d2e82aa6e779bf"><div class="ttname"><a href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a></div><div class="ttdeci">void guac_client_stream_jpeg(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_afc03a32b3113d9a95700cac54f1cbd4b"><div class="ttname"><a href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a></div><div class="ttdeci">void guac_client_free_buffer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given buffer to the pool of available buffers, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation.</div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="client_8h_html_af66d105dfd1453ec46b423e6b25fa371"><div class="ttname"><a href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a></div><div class="ttdeci">int guac_client_add_user(guac_client *client, guac_user *user, int argc, char **argv)</div><div class="ttdoc">Adds the given user to the internal list of connected users.</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers.</div></div>
+<div class="ttc" id="client_8h_html_a6c9d8717d4b8eaa50dbd7301af27a06f"><div class="ttname"><a href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a></div><div class="ttdeci">void guac_client_stream_argv(guac_client *client, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction),...</div></div>
+<div class="ttc" id="structguac__client_html_acb3e3f5d0ce5726cdde768f97b473f53"><div class="ttname"><a href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client::state</a></div><div class="ttdeci">guac_client_state state</div><div class="ttdoc">The current state of the client.</div><div class="ttdef"><b>Definition:</b> client.h:65</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="client-fntypes_8h_html"><div class="ttname"><a href="client-fntypes_8h.html">client-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="structguac__client_html_a73aeff08af6cf6cadd7abce74c7ff4b2"><div class="ttname"><a href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client::connected_users</a></div><div class="ttdeci">int connected_users</div><div class="ttdoc">The number of currently-connected users.</div><div class="ttdef"><b>Definition:</b> client.h:184</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="client_8h_html_a33bad42d21ccb561aa71c4f04ae9b22a"><div class="ttname"><a href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a></div><div class="ttdeci">guac_client * guac_client_alloc()</div><div class="ttdoc">Returns a new, barebones guac_client.</div></div>
+<div class="ttc" id="structguac__client_html_ad956a3935832e9048a2727d8c5a46cf6"><div class="ttname"><a href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events, called whenever a new user is leaving an active connection.</div><div class="ttdef"><b>Definition:</b> client.h:225</div></div>
+<div class="ttc" id="client_8h_html_af3f4ed85d98b16376e2cdc031ff1b44a"><div class="ttname"><a href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a></div><div class="ttdeci">void * guac_client_for_owner(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the currently-connected user that is marked as the owner.</div></div>
+<div class="ttc" id="client_8h_html_a76cdc454a23fdcbb70d56f923f6b6427"><div class="ttname"><a href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a></div><div class="ttdeci">void guac_client_free(guac_client *client)</div><div class="ttdoc">Free all resources associated with the given client.</div></div>
+<div class="ttc" id="client_8h_html_a55adbd5ee8f27c4df4394dbb5bf9416e"><div class="ttname"><a href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a></div><div class="ttdeci">void guac_client_stream_webp(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_a2085758db585bb9d09d3860ec0fc9587"><div class="ttname"><a href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_layer(guac_client *client)</div><div class="ttdoc">Allocates a new layer.</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="structguac__client_html_a79e29c931fd448cf51f7153fea064169"><div class="ttname"><a href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client::free_handler</a></div><div class="ttdeci">guac_client_free_handler * free_handler</div><div class="ttdoc">Handler for freeing data when the client is being unloaded.</div><div class="ttdef"><b>Definition:</b> client.h:101</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="client_8h_html_a022d4b5587c84f2963b176ab7999aa1b"><div class="ttname"><a href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a></div><div class="ttdeci">void guac_client_stop(guac_client *client)</div><div class="ttdoc">Signals the given client to stop gracefully.</div></div>
+<div class="ttc" id="client_8h_html_a317b9d79afd0b0b473d7d359e0c33750"><div class="ttname"><a href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a></div><div class="ttdeci">void guac_client_stream_png(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="client_8h_html_a02832d5be5330dc3de524b497b7c6dfa"><div class="ttname"><a href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a></div><div class="ttdeci">void guac_client_remove_user(guac_client *client, guac_user *user)</div><div class="ttdoc">Removes the given user, removing the user from the internally-tracked list of connected users,...</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance.</div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client_8h_html_aa2b94b3145fcebf2d7b1999df11d0b2c"><div class="ttname"><a href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a></div><div class="ttdeci">int guac_client_get_processing_lag(guac_client *client)</div><div class="ttdoc">Calculates and returns the approximate processing lag experienced by the pool of users.</div></div>
+<div class="ttc" id="client_8h_html_aef81b4409308c195d26db3443e9e76fe"><div class="ttname"><a href="client_8h.html#aef81b4409308c195d26db3443e9e76fe">guac_client_owner_send_required</a></div><div class="ttdeci">int guac_client_owner_send_required(guac_client *client, const char **required)</div><div class="ttdoc">Sends a request to the owner of the given guac_client for parameters required to continue the connect...</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="client_8h_html_af0103a5aae8ba76badd2e68e827f6782"><div class="ttname"><a href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a></div><div class="ttdeci">void guac_client_free_stream(guac_client *client, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="structguac__client_html_ad38b9ded1f04bfe8eb235e551fc08094"><div class="ttname"><a href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client::connection_id</a></div><div class="ttdeci">char * connection_id</div><div class="ttdoc">The unique identifier allocated for the connection, which may be used within the Guacamole protocol t...</div><div class="ttdef"><b>Definition:</b> client.h:159</div></div>
+<div class="ttc" id="client_8h_html_ad53666bbe29346497cabb04fc9628208"><div class="ttname"><a href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a></div><div class="ttdeci">void guac_client_log(guac_client *client, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given client.</div></div>
+<div class="ttc" id="client_8h_html_a7fbba296d1ec3e78dc4b79884f590a03"><div class="ttname"><a href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a></div><div class="ttdeci">void * guac_client_for_user(guac_client *client, guac_user *user, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the given user ONLY if they are currently connected.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/closed.png b/doc/1.3.0/libguac/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/doc/1.3.0/libguac/closed.png
Binary files differ
diff --git a/doc/1.3.0/libguac/deprecated.html b/doc/1.3.0/libguac/deprecated.html
new file mode 100644
index 0000000..2d98bb7
--- /dev/null
+++ b/doc/1.3.0/libguac/deprecated.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Deprecated List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+  <div class="headertitle">
+<div class="title">Deprecated List </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><dl class="reflist">
+<dt>Global <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> *socket, int index, const char *data)</dt>
+<dd><a class="anchor" id="_deprecated000001"></a> The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly. </dd>
+<dt>Global <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> *parent, int index)</dt>
+<dd><a class="anchor" id="_deprecated000002"></a> The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd>
+</dl>
+</div></div><!-- PageDoc -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html b/doc/1.3.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
new file mode 100644
index 0000000..1ea9381
--- /dev/null
+++ b/doc/1.3.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">guacamole Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:argv-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-constants_8h.html">argv-constants.h</a> <a href="argv-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:argv-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to automatic handling of received "argv" instructions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:argv-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv-fntypes_8h.html">argv-fntypes.h</a> <a href="argv-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:argv-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to automatic handling of received "argv" instructions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:argv_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="argv_8h.html">argv.h</a> <a href="argv_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:argv_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience functions for processing parameter values that are submitted dynamically using "argv" instructions. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html">audio-fntypes.h</a> <a href="audio-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-types_8h.html">audio-types.h</a> <a href="audio-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html">audio.h</a> <a href="audio_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures used for providing simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html">client-constants.h</a> <a href="client-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html">client-fntypes.h</a> <a href="client-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html">client-types.h</a> <a href="client-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html">client.h</a> <a href="client_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions and structure contents for the Guacamole proxy client. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html">error-types.h</a> <a href="error-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html">error.h</a> <a href="error_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hash_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html">hash.h</a> <a href="hash_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:hash_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for producing likely-to-be-unique hash values for images. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer-types_8h.html">layer-types.h</a> <a href="layer-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer_8h.html">layer.h</a> <a href="layer_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object-types_8h.html">object-types.h</a> <a href="object-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html">object.h</a> <a href="object_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html">parser-constants.h</a> <a href="parser-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol parser. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html">parser-types.h</a> <a href="parser-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html">parser.h</a> <a href="parser_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html">plugin-constants.h</a> <a href="plugin-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to client plugins. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8h.html">plugin.h</a> <a href="plugin_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling a client plugin. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool-types_8h.html">pool-types.h</a> <a href="pool-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> pool of unique integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html">pool.h</a> <a href="pool_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for maintaining dynamically allocated and freed pools of integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html">protocol-constants.h</a> <a href="protocol-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html">protocol-types.h</a> <a href="protocol-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html">protocol.h</a> <a href="protocol_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html">socket-constants.h</a> <a href="socket-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html">socket-fntypes.h</a> <a href="socket-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-ssl_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html">socket-ssl.h</a> <a href="socket-ssl_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-ssl_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html">socket-types.h</a> <a href="socket-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-wsa_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html">socket-wsa.h</a> <a href="socket-wsa_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-wsa_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html">socket.h</a> <a href="socket_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object and functionss for using and manipulating it. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream-types_8h.html">stream-types.h</a> <a href="stream-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream_8h.html">stream.h</a> <a href="stream_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:string_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html">string.h</a> <a href="string_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:string_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides convenience functions for manipulating strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html">timestamp-types.h</a> <a href="timestamp-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html">timestamp.h</a> <a href="timestamp_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for creating timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unicode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html">unicode.h</a> <a href="unicode_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:unicode_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions for manipulating Unicode strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html">user-constants.h</a> <a href="user-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html">user-fntypes.h</a> <a href="user-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-types_8h.html">user-types.h</a> <a href="user-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html">user.h</a> <a href="user_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:wol-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol-constants_8h.html">wol-constants.h</a> <a href="wol-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:wol-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header file that provides constants and defaults related to libguac Wake-on-LAN support. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:wol_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol_8h.html">wol.h</a> <a href="wol_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:wol_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header that provides functions and structures related to Wake-on-LAN support in libguac. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/doc.png b/doc/1.3.0/libguac/doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/doc/1.3.0/libguac/doc.png
Binary files differ
diff --git a/doc/1.3.0/libguac/doxygen.css b/doc/1.3.0/libguac/doxygen.css
new file mode 100644
index 0000000..e251592
--- /dev/null
+++ b/doc/1.3.0/libguac/doxygen.css
@@ -0,0 +1,1764 @@
+/* The standard CSS for doxygen 1.8.15 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+p.interli {
+}
+
+p.interdd {
+}
+
+p.intertd {
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #FFFFFF;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #FFFFFF;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+ul {
+  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+}
+
+#side-nav ul {
+  overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
+}
+
+#main-nav ul {
+  overflow: visible; /* reset ul rule for the navigation bar drop down lists */
+}
+
+.fragment {
+  text-align: left;
+  direction: ltr;
+  overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/
+  overflow-y: hidden;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+  padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/
+  margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #FFFFFF;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl, img.inline {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+   border-left: 0;
+   border-right: 2px solid #9CAFD4;
+   margin: 0 4px 0 24px;
+   padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname, .tparams .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype, .tparams .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir, .tparams .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+  text-align: right;
+  direction: rtl;
+}
+
+dl {
+        padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+  margin-right: 0px;
+  padding-right: 0px;
+}
+
+dl.note {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.note.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00D000;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00D000;
+}
+
+dl.deprecated {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #505050;
+}
+
+dl.deprecated.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #505050;
+}
+
+dl.todo {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.todo.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #00C0E0;
+}
+
+dl.test {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.test.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #3030E0;
+}
+
+dl.bug {
+  margin-left: -7px;
+  padding-left: 3px;
+  border-left: 4px solid;
+  border-color: #C08050;
+}
+
+dl.bug.DocNodeRTL {
+  margin-left: 0;
+  padding-left: 0;
+  border-left: 0;
+  margin-right: -7px;
+  padding-right: 3px;
+  border-right: 4px solid;
+  border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+  float: left !important;
+  text-align: right;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+  background-position-x: right !important;
+  padding-left: 0 !important;
+  padding-right: 10px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.PageDocRTL-title div.toc li.level1 {
+  margin-left: 0 !important;
+  margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+  margin-left: 0 !important;
+  margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+  margin-left: 0 !important;
+  margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+  margin-left: 0 !important;
+  margin-right: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #FFFFFF;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #FFFFFF;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+.DocNodeRTL {
+  text-align: right;
+  direction: rtl;
+}
+
+.DocNodeLTR {
+  text-align: left;
+  direction: ltr;
+}
+
+table.DocNodeRTL {
+   width: auto;
+   margin-right: 0;
+   margin-left: auto;
+}
+
+table.DocNodeLTR {
+   width: auto;
+   margin-right: auto;
+   margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+  display: inline-block;
+  direction:ltr; 
+}
+/* @end */
+
+u {
+	text-decoration: underline;
+}
+
diff --git a/doc/1.3.0/libguac/doxygen.png b/doc/1.3.0/libguac/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/doc/1.3.0/libguac/doxygen.png
Binary files differ
diff --git a/doc/1.3.0/libguac/dynsections.js b/doc/1.3.0/libguac/dynsections.js
new file mode 100644
index 0000000..ea0a7b3
--- /dev/null
+++ b/doc/1.3.0/libguac/dynsections.js
@@ -0,0 +1,120 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9658;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9658;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9658;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
diff --git a/doc/1.3.0/libguac/error-types_8h.html b/doc/1.3.0/libguac/error-types_8h.html
new file mode 100644
index 0000000..c1dcb4f
--- /dev/null
+++ b/doc/1.3.0/libguac/error-types_8h.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">error-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> { <br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a>
+<br />
+ }</td></tr>
+<tr class="memdesc:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes shared by all Guacamole functions which can fail.  <a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">More...</a><br /></td></tr>
+<tr class="separator:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to return values and errors. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a1f4f9a73ee399e5dff424376eb4f9c86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f4f9a73ee399e5dff424376eb4f9c86">&#9670;&nbsp;</a></span>guac_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return codes shared by all Guacamole functions which can fail. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"></a>GUAC_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>No errors occurred and the operation was successful. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"></a>GUAC_STATUS_NO_MEMORY&#160;</td><td class="fielddoc"><p>Insufficient memory to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"></a>GUAC_STATUS_CLOSED&#160;</td><td class="fielddoc"><p>The resource associated with the operation can no longer be used as it has reached the end of its normal lifecycle. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"></a>GUAC_STATUS_TIMEOUT&#160;</td><td class="fielddoc"><p>Time ran out before the operation could complete. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"></a>GUAC_STATUS_SEE_ERRNO&#160;</td><td class="fielddoc"><p>An error occurred, and further information about the error is already stored in errno. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"></a>GUAC_STATUS_IO_ERROR&#160;</td><td class="fielddoc"><p>An I/O error prevented the operation from succeeding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"></a>GUAC_STATUS_INVALID_ARGUMENT&#160;</td><td class="fielddoc"><p>The operation could not be performed because an invalid argument was given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"></a>GUAC_STATUS_INTERNAL_ERROR&#160;</td><td class="fielddoc"><p>The operation failed due to a bug in the software or a serious system problem. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"></a>GUAC_STATUS_NO_SPACE&#160;</td><td class="fielddoc"><p>Insufficient space remaining to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"></a>GUAC_STATUS_INPUT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the input provided is too large. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"></a>GUAC_STATUS_RESULT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the result could not be stored in the space provided. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"></a>GUAC_STATUS_PERMISSION_DENIED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"></a>GUAC_STATUS_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed because associated resources are busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"></a>GUAC_STATUS_NOT_AVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"></a>GUAC_STATUS_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is not supported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"></a>GUAC_STATUS_NOT_INPLEMENTED&#160;</td><td class="fielddoc"><p>Support for the requested operation is not yet implemented. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"></a>GUAC_STATUS_TRY_AGAIN&#160;</td><td class="fielddoc"><p>The operation is temporarily unable to be performed, but may succeed if reattempted. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"></a>GUAC_STATUS_PROTOCOL_ERROR&#160;</td><td class="fielddoc"><p>A violation of the Guacamole protocol occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"></a>GUAC_STATUS_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the requested resources do not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"></a>GUAC_STATUS_CANCELED&#160;</td><td class="fielddoc"><p>The operation was canceled prior to completion. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"></a>GUAC_STATUS_OUT_OF_RANGE&#160;</td><td class="fielddoc"><p>The operation could not be performed because input values are outside the allowed range. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"></a>GUAC_STATUS_REFUSED&#160;</td><td class="fielddoc"><p>The operation could not be performed because access to an underlying resource is explicitly not allowed, though not necessarily due to permissions. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"></a>GUAC_STATUS_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because too many resources are already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"></a>GUAC_STATUS_WOULD_BLOCK&#160;</td><td class="fielddoc"><p>The operation was not performed because it would otherwise block. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/error-types_8h_source.html b/doc/1.3.0/libguac/error-types_8h_source.html
new file mode 100644
index 0000000..b19add5
--- /dev/null
+++ b/doc/1.3.0/libguac/error-types_8h_source.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">   32</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">   37</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0,</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">   42</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>,</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">   48</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>,</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">   53</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">   59</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">   64</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">   70</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">   76</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">   81</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">   86</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>,</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">   92</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">   97</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">  103</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>,</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">  109</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">  114</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">  119</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>,</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">  125</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>,</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">  130</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">  136</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>,</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">  141</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">  147</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">  154</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">  159</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">  164</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;} <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a></div><div class="ttdoc">Insufficient memory to complete the operation.</div><div class="ttdef"><b>Definition:</b> error-types.h:42</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a></div><div class="ttdoc">The operation could not be performed because input values are outside the allowed range.</div><div class="ttdef"><b>Definition:</b> error-types.h:147</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the result could not be stored in the space provided.</div><div class="ttdef"><b>Definition:</b> error-types.h:92</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the input provided is too large.</div><div class="ttdef"><b>Definition:</b> error-types.h:86</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a></div><div class="ttdoc">The operation failed due to a bug in the software or a serious system problem.</div><div class="ttdef"><b>Definition:</b> error-types.h:76</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a></div><div class="ttdoc">The operation was canceled prior to completion.</div><div class="ttdef"><b>Definition:</b> error-types.h:141</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a></div><div class="ttdoc">The operation failed because too many resources are already in use.</div><div class="ttdef"><b>Definition:</b> error-types.h:159</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail.</div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a></div><div class="ttdoc">The resource associated with the operation can no longer be used as it has reached the end of its nor...</div><div class="ttdef"><b>Definition:</b> error-types.h:48</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a></div><div class="ttdoc">The operation could not be performed because, while the associated resources do exist,...</div><div class="ttdef"><b>Definition:</b> error-types.h:109</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the requested resources do not exist.</div><div class="ttdef"><b>Definition:</b> error-types.h:136</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a></div><div class="ttdoc">The operation could not be performed because an invalid argument was given.</div><div class="ttdef"><b>Definition:</b> error-types.h:70</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a></div><div class="ttdoc">The operation is temporarily unable to be performed, but may succeed if reattempted.</div><div class="ttdef"><b>Definition:</b> error-types.h:125</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a></div><div class="ttdoc">An error occurred, and further information about the error is already stored in errno.</div><div class="ttdef"><b>Definition:</b> error-types.h:59</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a></div><div class="ttdoc">An I/O error prevented the operation from succeeding.</div><div class="ttdef"><b>Definition:</b> error-types.h:64</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a></div><div class="ttdoc">A violation of the Guacamole protocol occurred.</div><div class="ttdef"><b>Definition:</b> error-types.h:130</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a></div><div class="ttdoc">Insufficient space remaining to complete the operation.</div><div class="ttdef"><b>Definition:</b> error-types.h:81</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a></div><div class="ttdoc">The operation could not be performed because access to an underlying resource is explicitly not allow...</div><div class="ttdef"><b>Definition:</b> error-types.h:154</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="ttdoc">The operation was not performed because it would otherwise block.</div><div class="ttdef"><b>Definition:</b> error-types.h:164</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a></div><div class="ttdoc">Support for the requested operation is not yet implemented.</div><div class="ttdef"><b>Definition:</b> error-types.h:119</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a></div><div class="ttdoc">Permission was denied to perform the operation.</div><div class="ttdef"><b>Definition:</b> error-types.h:97</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a></div><div class="ttdoc">The requested operation is not supported.</div><div class="ttdef"><b>Definition:</b> error-types.h:114</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a></div><div class="ttdoc">No errors occurred and the operation was successful.</div><div class="ttdef"><b>Definition:</b> error-types.h:37</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a></div><div class="ttdoc">The operation could not be performed because associated resources are busy.</div><div class="ttdef"><b>Definition:</b> error-types.h:103</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a></div><div class="ttdoc">Time ran out before the operation could complete.</div><div class="ttdef"><b>Definition:</b> error-types.h:53</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/error_8h.html b/doc/1.3.0/libguac/error_8h.html
new file mode 100644
index 0000000..ea6888c
--- /dev/null
+++ b/doc/1.3.0/libguac/error_8h.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">error.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a39a2290527ea7c3f0acb07f002c397b1"><td class="memItemLeft" align="right" valign="top"><a id="a39a2290527ea7c3f0acb07f002c397b1"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a> (<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status)</td></tr>
+<tr class="memdesc:a39a2290527ea7c3f0acb07f002c397b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a human-readable explanation of the status code given. <br /></td></tr>
+<tr class="separator:a39a2290527ea7c3f0acb07f002c397b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling return values and errors. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/error_8h_source.html b/doc/1.3.0/libguac/error_8h_source.html
new file mode 100644
index 0000000..4ef6f0d
--- /dev/null
+++ b/doc/1.3.0/libguac/error_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="error-types_8h.html">error-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">   76</a></span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">   89</a></span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail.</div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error_8h_html_a39a2290527ea7c3f0acb07f002c397b1"><div class="ttname"><a href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a></div><div class="ttdeci">const char * guac_status_string(guac_status status)</div><div class="ttdoc">Returns a human-readable explanation of the status code given.</div></div>
+<div class="ttc" id="error-types_8h_html"><div class="ttname"><a href="error-types_8h.html">error-types.h</a></div><div class="ttdoc">Type definitions related to return values and errors.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/files.html b/doc/1.3.0/libguac/files.html
new file mode 100644
index 0000000..716d3ee
--- /dev/null
+++ b/doc/1.3.0/libguac/files.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html" target="_self">guacamole</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="argv-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="argv-constants_8h.html" target="_self">argv-constants.h</a></td><td class="desc">Constants related to automatic handling of received "argv" instructions </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="argv-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="argv-fntypes_8h.html" target="_self">argv-fntypes.h</a></td><td class="desc">Function type definitions related to automatic handling of received "argv" instructions </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="argv_8h_source.html"><span class="icondoc"></span></a><a class="el" href="argv_8h.html" target="_self">argv.h</a></td><td class="desc">Convenience functions for processing parameter values that are submitted dynamically using "argv" instructions </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-fntypes_8h.html" target="_self">audio-fntypes.h</a></td><td class="desc">Function type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-types_8h.html" target="_self">audio-types.h</a></td><td class="desc">Type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio_8h.html" target="_self">audio.h</a></td><td class="desc">Provides functions and structures used for providing simple streaming audio </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-constants_8h.html" target="_self">client-constants.h</a></td><td class="desc">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-fntypes_8h.html" target="_self">client-fntypes.h</a></td><td class="desc">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-types_8h.html" target="_self">client-types.h</a></td><td class="desc">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client_8h.html" target="_self">client.h</a></td><td class="desc">Functions and structure contents for the Guacamole proxy client </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error-types_8h.html" target="_self">error-types.h</a></td><td class="desc">Type definitions related to return values and errors </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error_8h.html" target="_self">error.h</a></td><td class="desc">Provides functions and structures required for handling return values and errors </td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="hash_8h_source.html"><span class="icondoc"></span></a><a class="el" href="hash_8h.html" target="_self">hash.h</a></td><td class="desc">Provides functions and structures for producing likely-to-be-unique hash values for images </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer-types_8h.html" target="_self">layer-types.h</a></td><td class="desc">Type definitions related to Guacamole layers </td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer_8h.html" target="_self">layer.h</a></td><td class="desc">Provides functions and structures required for allocating and using layers </td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object-types_8h.html" target="_self">object-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol objects </td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object_8h.html" target="_self">object.h</a></td><td class="desc">Provides functions and structures required for allocating and using objects </td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-constants_8h.html" target="_self">parser-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol parser </td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-types_8h.html" target="_self">parser-types.h</a></td><td class="desc">Type definitions related to parsing the Guacamole protocol </td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser_8h.html" target="_self">parser.h</a></td><td class="desc">Provides functions and structures for parsing the Guacamole protocol </td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin-constants_8h.html" target="_self">plugin-constants.h</a></td><td class="desc">Constants related to client plugins </td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin_8h.html" target="_self">plugin.h</a></td><td class="desc">Provides functions and structures required for handling a client plugin </td></tr>
+<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool-types_8h.html" target="_self">pool-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> pool of unique integers </td></tr>
+<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool_8h.html" target="_self">pool.h</a></td><td class="desc">Provides functions and structures for maintaining dynamically allocated and freed pools of integers </td></tr>
+<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-constants_8h.html" target="_self">protocol-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol </td></tr>
+<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-types_8h.html" target="_self">protocol-types.h</a></td><td class="desc">Type definitions related to the Guacamole protocol </td></tr>
+<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol_8h.html" target="_self">protocol.h</a></td><td class="desc">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> objects </td></tr>
+<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-constants_8h.html" target="_self">socket-constants.h</a></td><td class="desc">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object </td></tr>
+<tr id="row_0_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-fntypes_8h.html" target="_self">socket-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object </td></tr>
+<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-ssl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-ssl_8h.html" target="_self">socket-ssl.h</a></td><td class="desc">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> </td></tr>
+<tr id="row_0_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-types_8h.html" target="_self">socket-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object </td></tr>
+<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-wsa_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-wsa_8h.html" target="_self">socket-wsa.h</a></td><td class="desc">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock") </td></tr>
+<tr id="row_0_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket_8h.html" target="_self">socket.h</a></td><td class="desc">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object and functionss for using and manipulating it </td></tr>
+<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream-types_8h.html" target="_self">stream-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol streams </td></tr>
+<tr id="row_0_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream_8h.html" target="_self">stream.h</a></td><td class="desc">Provides functions and structures required for allocating and using streams </td></tr>
+<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="string_8h_source.html"><span class="icondoc"></span></a><a class="el" href="string_8h.html" target="_self">string.h</a></td><td class="desc">Provides convenience functions for manipulating strings </td></tr>
+<tr id="row_0_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp-types_8h.html" target="_self">timestamp-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol timestamps </td></tr>
+<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp_8h.html" target="_self">timestamp.h</a></td><td class="desc">Provides functions and structures for creating timestamps </td></tr>
+<tr id="row_0_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="unicode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="unicode_8h.html" target="_self">unicode.h</a></td><td class="desc">Provides functions for manipulating Unicode strings </td></tr>
+<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-constants_8h.html" target="_self">user-constants.h</a></td><td class="desc">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> </td></tr>
+<tr id="row_0_40_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-fntypes_8h.html" target="_self">user-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object </td></tr>
+<tr id="row_0_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-types_8h.html" target="_self">user-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object </td></tr>
+<tr id="row_0_42_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user_8h.html" target="_self">user.h</a></td><td class="desc">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> </td></tr>
+<tr id="row_0_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="wol-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wol-constants_8h.html" target="_self">wol-constants.h</a></td><td class="desc">Header file that provides constants and defaults related to libguac Wake-on-LAN support </td></tr>
+<tr id="row_0_44_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="wol_8h_source.html"><span class="icondoc"></span></a><a class="el" href="wol_8h.html" target="_self">wol.h</a></td><td class="desc">Header that provides functions and structures related to Wake-on-LAN support in libguac </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/folderclosed.png b/doc/1.3.0/libguac/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/doc/1.3.0/libguac/folderclosed.png
Binary files differ
diff --git a/doc/1.3.0/libguac/folderopen.png b/doc/1.3.0/libguac/folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/doc/1.3.0/libguac/folderopen.png
Binary files differ
diff --git a/doc/1.3.0/libguac/functions.html b/doc/1.3.0/libguac/functions.html
new file mode 100644
index 0000000..d68a2bc
--- /dev/null
+++ b/doc/1.3.0/libguac/functions.html
@@ -0,0 +1,378 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>protocol_version
+: <a class="el" href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">guac_user_info</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/functions_vars.html b/doc/1.3.0/libguac/functions_vars.html
new file mode 100644
index 0000000..de58349
--- /dev/null
+++ b/doc/1.3.0/libguac/functions_vars.html
@@ -0,0 +1,378 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>protocol_version
+: <a class="el" href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">guac_user_info</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals.html b/doc/1.3.0/libguac/globals.html
new file mode 100644
index 0000000..72a2f21
--- /dev/null
+++ b/doc/1.3.0/libguac/globals.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_argv_await()
+: <a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d">argv.h</a>
+</li>
+<li>guac_argv_callback
+: <a class="el" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">argv-fntypes.h</a>
+</li>
+<li>guac_argv_handler
+: <a class="el" href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">argv.h</a>
+</li>
+<li>guac_argv_received()
+: <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d">argv.h</a>
+</li>
+<li>guac_argv_register()
+: <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599">argv.h</a>
+</li>
+<li>guac_argv_stop()
+: <a class="el" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33">argv.h</a>
+</li>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_c.html b/doc/1.3.0/libguac/globals_c.html
new file mode 100644
index 0000000..543e304
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_c.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_owner_send_required()
+: <a class="el" href="client_8h.html#aef81b4409308c195d26db3443e9e76fe">client.h</a>
+</li>
+<li>guac_client_owner_supports_required()
+: <a class="el" href="client_8h.html#a347fdf77fb6e0829f00513e6b4da406f">client.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_defs.html b/doc/1.3.0/libguac/globals_defs.html
new file mode 100644
index 0000000..33da4f5
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_defs.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_ARGV_MAX_LENGTH
+: <a class="el" href="argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_MIMETYPE_LENGTH
+: <a class="el" href="argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_NAME_LENGTH
+: <a class="el" href="argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_REGISTERED
+: <a class="el" href="argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_OPTION_ECHO
+: <a class="el" href="argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_OPTION_ONCE
+: <a class="el" href="argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029">argv-constants.h</a>
+</li>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUAC_WOL_LOCAL_IPV4_BROADCAST
+: <a class="el" href="wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f">wol-constants.h</a>
+</li>
+<li>GUAC_WOL_PACKET_SIZE
+: <a class="el" href="wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54">wol-constants.h</a>
+</li>
+<li>GUAC_WOL_PORT
+: <a class="el" href="wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b">wol-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_e.html b/doc/1.3.0/libguac/globals_e.html
new file mode 100644
index 0000000..6d70a46
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_e.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_enum.html b/doc/1.3.0/libguac/globals_enum.html
new file mode 100644
index 0000000..7c58357
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_enum.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>guac_protocol_version
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">protocol-types.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_eval.html b/doc/1.3.0/libguac/globals_eval.html
new file mode 100644
index 0000000..989e76b
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_eval.html
@@ -0,0 +1,273 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_0_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_1_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_3_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_UNKNOWN
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_func.html b/doc/1.3.0/libguac/globals_func.html
new file mode 100644
index 0000000..da55b0f
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_func.html
@@ -0,0 +1,598 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_argv_await()
+: <a class="el" href="argv_8h.html#a3390cfa416876991fcaf08871160415d">argv.h</a>
+</li>
+<li>guac_argv_received()
+: <a class="el" href="argv_8h.html#adb02a115909eed11fcf0d864de04ea8d">argv.h</a>
+</li>
+<li>guac_argv_register()
+: <a class="el" href="argv_8h.html#abc25c66eecc88d82851aab121f93f599">argv.h</a>
+</li>
+<li>guac_argv_stop()
+: <a class="el" href="argv_8h.html#a600211a457a9db1ad0741b13d0179d33">argv.h</a>
+</li>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_owner_send_required()
+: <a class="el" href="client_8h.html#aef81b4409308c195d26db3443e9e76fe">client.h</a>
+</li>
+<li>guac_client_owner_supports_required()
+: <a class="el" href="client_8h.html#a347fdf77fb6e0829f00513e6b4da406f">client.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_required()
+: <a class="el" href="protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>guac_protocol_string_to_version()
+: <a class="el" href="protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396">protocol.h</a>
+</li>
+<li>guac_protocol_version_to_string()
+: <a class="el" href="protocol_8h.html#af97ab710efe6080977b0450548e6af0b">protocol.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strdup()
+: <a class="el" href="string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b">string.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_required()
+: <a class="el" href="user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>guac_wol_wake()
+: <a class="el" href="wol_8h.html#ace39296575e120004284bae76c6053cb">wol.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_g.html b/doc/1.3.0/libguac/globals_g.html
new file mode 100644
index 0000000..60cb129
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_g.html
@@ -0,0 +1,384 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_ARGV_MAX_LENGTH
+: <a class="el" href="argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_MIMETYPE_LENGTH
+: <a class="el" href="argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_NAME_LENGTH
+: <a class="el" href="argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_MAX_REGISTERED
+: <a class="el" href="argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_OPTION_ECHO
+: <a class="el" href="argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e">argv-constants.h</a>
+</li>
+<li>GUAC_ARGV_OPTION_ONCE
+: <a class="el" href="argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029">argv-constants.h</a>
+</li>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_0_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_1_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_1_3_0
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_VERSION_UNKNOWN
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUAC_WOL_LOCAL_IPV4_BROADCAST
+: <a class="el" href="wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f">wol-constants.h</a>
+</li>
+<li>GUAC_WOL_PACKET_SIZE
+: <a class="el" href="wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54">wol-constants.h</a>
+</li>
+<li>GUAC_WOL_PORT
+: <a class="el" href="wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b">wol-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_h.html b/doc/1.3.0/libguac/globals_h.html
new file mode 100644
index 0000000..2a10990
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_h.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_l.html b/doc/1.3.0/libguac/globals_l.html
new file mode 100644
index 0000000..116eb8f
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_l.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_p.html b/doc/1.3.0/libguac/globals_p.html
new file mode 100644
index 0000000..cfdb111
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_p.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_required()
+: <a class="el" href="protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>guac_protocol_string_to_version()
+: <a class="el" href="protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396">protocol.h</a>
+</li>
+<li>guac_protocol_version
+: <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">protocol-types.h</a>
+</li>
+<li>guac_protocol_version_to_string()
+: <a class="el" href="protocol_8h.html#af97ab710efe6080977b0450548e6af0b">protocol.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_s.html b/doc/1.3.0/libguac/globals_s.html
new file mode 100644
index 0000000..7b5a21f
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_s.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strdup()
+: <a class="el" href="string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b">string.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_t.html b/doc/1.3.0/libguac/globals_t.html
new file mode 100644
index 0000000..2d9e0ad
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_t.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_type.html b/doc/1.3.0/libguac/globals_type.html
new file mode 100644
index 0000000..7dea1b9
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_type.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_argv_callback
+: <a class="el" href="argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6">argv-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_u.html b/doc/1.3.0/libguac/globals_u.html
new file mode 100644
index 0000000..1348f85
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_u.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_required()
+: <a class="el" href="user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_vars.html b/doc/1.3.0/libguac/globals_vars.html
new file mode 100644
index 0000000..33ebe32
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_vars.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>guac_argv_handler
+: <a class="el" href="argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c">argv.h</a>
+</li>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/globals_w.html b/doc/1.3.0/libguac/globals_w.html
new file mode 100644
index 0000000..b888a08
--- /dev/null
+++ b/doc/1.3.0/libguac/globals_w.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>guac_wol_wake()
+: <a class="el" href="wol_8h.html#ace39296575e120004284bae76c6053cb">wol.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/hash_8h.html b/doc/1.3.0/libguac/hash_8h.html
new file mode 100644
index 0000000..7ef3d4b
--- /dev/null
+++ b/doc/1.3.0/libguac/hash_8h.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">hash.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for producing likely-to-be-unique hash values for images.  
+<a href="#details">More...</a></p>
+
+<p><a href="hash_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a> (cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a 24-bit hash value from all pixels of the given surface.  <a href="#ae8243122fb0b158a22058f9dbd2bbc0c">More...</a><br /></td></tr>
+<tr class="separator:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a377c701a920281a98cbcf0842124aaac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a> (cairo_surface_t *a, cairo_surface_t *b)</td></tr>
+<tr class="memdesc:a377c701a920281a98cbcf0842124aaac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively.  <a href="#a377c701a920281a98cbcf0842124aaac">More...</a><br /></td></tr>
+<tr class="separator:a377c701a920281a98cbcf0842124aaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for producing likely-to-be-unique hash values for images. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae8243122fb0b158a22058f9dbd2bbc0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae8243122fb0b158a22058f9dbd2bbc0c">&#9670;&nbsp;</a></span>guac_hash_surface()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int guac_hash_surface </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Produces a 24-bit hash value from all pixels of the given surface. </p>
+<p>The surface provided must be RGB or ARGB with each pixel stored in 32 bits. The hashing algorithm used is a variant of the cyclic polynomial rolling hash.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">surface</td><td>The Cairo surface to hash. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary 24-bit unsigned integer value intended to be well distributed across different images. </dd></dl>
+
+</div>
+</div>
+<a id="a377c701a920281a98cbcf0842124aaac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a377c701a920281a98cbcf0842124aaac">&#9670;&nbsp;</a></span>guac_surface_cmp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_surface_cmp </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>b</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>The first Cairo surface to compare. </td></tr>
+    <tr><td class="paramname">b</td><td>The Cairo surface to compare the first surface against. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/hash_8h_source.html b/doc/1.3.0/libguac/hash_8h_source.html
new file mode 100644
index 0000000..1cf9dcd
--- /dev/null
+++ b/doc/1.3.0/libguac/hash_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">hash.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="hash_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_HASH_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_HASH_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a>(cairo_surface_t* surface);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a>(cairo_surface_t* a, cairo_surface_t* b);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="ttc" id="hash_8h_html_a377c701a920281a98cbcf0842124aaac"><div class="ttname"><a href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a></div><div class="ttdeci">int guac_surface_cmp(cairo_surface_t *a, cairo_surface_t *b)</div><div class="ttdoc">Given two Cairo surfaces, returns zero if the data contained within each is identical,...</div></div>
+<div class="ttc" id="hash_8h_html_ae8243122fb0b158a22058f9dbd2bbc0c"><div class="ttname"><a href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a></div><div class="ttdeci">unsigned int guac_hash_surface(cairo_surface_t *surface)</div><div class="ttdoc">Produces a 24-bit hash value from all pixels of the given surface.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/index.html b/doc/1.3.0/libguac/index.html
new file mode 100644
index 0000000..89d89d6
--- /dev/null
+++ b/doc/1.3.0/libguac/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">libguac Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/jquery.js b/doc/1.3.0/libguac/jquery.js
new file mode 100644
index 0000000..1ee895c
--- /dev/null
+++ b/doc/1.3.0/libguac/jquery.js
@@ -0,0 +1,87 @@
+/*!
+ * jQuery JavaScript Library v1.7.2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Wed Mar 21 12:46:34 2012 -0700
+ */
+(function(bd,L){var av=bd.document,bu=bd.navigator,bm=bd.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bd.jQuery,bH=bd.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bd.$===bF){bd.$=bH}if(b0&&bd.jQuery===bF){bd.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bd.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bd.attachEvent("onload",bF.ready);var b0=false;try{b0=bd.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0!=null&&b0==b0.window},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bd.JSON&&bd.JSON.parse){return bd.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){if(typeof b2!=="string"||!b2){return null}var b0,b1;try{if(bd.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bd.execScript||function(b1){bd["eval"].call(bd,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b6,b9,b7,b4,ca,b8){var b2,b5=b9==null,b3=0,b1=b0.length;if(b9&&typeof b9==="object"){for(b3 in b9){bF.access(b0,b6,b3,b9[b3],1,ca,b7)}b4=1}else{if(b7!==L){b2=b8===L&&bF.isFunction(b7);if(b5){if(b2){b2=b6;b6=function(cc,cb,cd){return b2.call(bF(cc),cd)}}else{b6.call(b0,b7);b6=null}}if(b6){for(;b3<b1;b3++){b6(b0[b3],b9,b2?b7.call(b0[b3],b3,b6(b0[b3],b9)):b7,b8)}}b4=1}}return b4?b0:b5?b6.call(b0):b1?b6(b0[0],b9):ca},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a3={};function X(e){var bv=a3[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bx){bx=bx?(a3[bx]||X(bx)):{};var bC=[],bD=[],by,e,bz,bw,bA,bB,bF=function(bG){var bH,bK,bJ,bI,bL;for(bH=0,bK=bG.length;bH<bK;bH++){bJ=bG[bH];bI=b.type(bJ);if(bI==="array"){bF(bJ)}else{if(bI==="function"){if(!bx.unique||!bE.has(bJ)){bC.push(bJ)}}}}},bv=function(bH,bG){bG=bG||[];by=!bx.memory||[bH,bG];e=true;bz=true;bB=bw||0;bw=0;bA=bC.length;for(;bC&&bB<bA;bB++){if(bC[bB].apply(bH,bG)===false&&bx.stopOnFalse){by=true;break}}bz=false;if(bC){if(!bx.once){if(bD&&bD.length){by=bD.shift();bE.fireWith(by[0],by[1])}}else{if(by===true){bE.disable()}else{bC=[]}}}},bE={add:function(){if(bC){var bG=bC.length;bF(arguments);if(bz){bA=bC.length}else{if(by&&by!==true){bw=bG;bv(by[0],by[1])}}}return this},remove:function(){if(bC){var bG=arguments,bI=0,bJ=bG.length;for(;bI<bJ;bI++){for(var bH=0;bH<bC.length;bH++){if(bG[bI]===bC[bH]){if(bz){if(bH<=bA){bA--;if(bH<=bB){bB--}}}bC.splice(bH--,1);if(bx.unique){break}}}}}return this},has:function(bH){if(bC){var bG=0,bI=bC.length;for(;bG<bI;bG++){if(bH===bC[bG]){return true}}}return false},empty:function(){bC=[];return this},disable:function(){bC=bD=by=L;return this},disabled:function(){return !bC},lock:function(){bD=L;if(!by||by===true){bE.disable()}return this},locked:function(){return !bD},fireWith:function(bH,bG){if(bD){if(bz){if(!bx.once){bD.push([bH,bG])}}else{if(!(bx.once&&by)){bv(bH,bG)}}}return this},fire:function(){bE.fireWith(this,arguments);return this},fired:function(){return !!e}};return bE};var aK=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aK.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aK.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aK.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bI,bH,bE,bF,bx,bD,bC,bz,bJ,bA,by,bw,bv=av.createElement("div"),bG=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bH=bv.getElementsByTagName("*");bE=bv.getElementsByTagName("a")[0];if(!bH||!bH.length||!bE){return{}}bF=av.createElement("select");bx=bF.appendChild(av.createElement("option"));bD=bv.getElementsByTagName("input")[0];bI={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bE.getAttribute("style")),hrefNormalized:(bE.getAttribute("href")==="/a"),opacity:/^0.55/.test(bE.style.opacity),cssFloat:!!bE.style.cssFloat,checkOn:(bD.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true,pixelMargin:true};b.boxModel=bI.boxModel=(av.compatMode==="CSS1Compat");bD.checked=true;bI.noCloneChecked=bD.cloneNode(true).checked;bF.disabled=true;bI.optDisabled=!bx.disabled;try{delete bv.test}catch(bB){bI.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bI.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bD=av.createElement("input");bD.value="t";bD.setAttribute("type","radio");bI.radioValue=bD.value==="t";bD.setAttribute("checked","checked");bD.setAttribute("name","t");bv.appendChild(bD);bC=av.createDocumentFragment();bC.appendChild(bv.lastChild);bI.checkClone=bC.cloneNode(true).cloneNode(true).lastChild.checked;bI.appendChecked=bD.checked;bC.removeChild(bD);bC.appendChild(bv);if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bA="on"+by;bw=(bA in bv);if(!bw){bv.setAttribute(bA,"return;");bw=(typeof bv[bA]==="function")}bI[by+"Bubbles"]=bw}}bC.removeChild(bv);bC=bF=bx=bv=bD=null;b(function(){var bM,bV,bW,bU,bO,bP,bR,bL,bK,bQ,bN,e,bT,bS=av.getElementsByTagName("body")[0];if(!bS){return}bL=1;bT="padding:0;margin:0;border:";bN="position:absolute;top:0;left:0;width:1px;height:1px;";e=bT+"0;visibility:hidden;";bK="style='"+bN+bT+"5px solid #000;";bQ="<div "+bK+"display:block;'><div style='"+bT+"0;display:block;overflow:hidden;'></div></div><table "+bK+"' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=e+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bS.insertBefore(bM,bS.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='"+bT+"0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bI.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);if(bd.getComputedStyle){bv.innerHTML="";bR=av.createElement("div");bR.style.width="0";bR.style.marginRight="0";bv.style.width="2px";bv.appendChild(bR);bI.reliableMarginRight=(parseInt((bd.getComputedStyle(bR,null)||{marginRight:0}).marginRight,10)||0)===0}if(typeof bv.style.zoom!=="undefined"){bv.innerHTML="";bv.style.width=bv.style.padding="1px";bv.style.border=0;bv.style.overflow="hidden";bv.style.display="inline";bv.style.zoom=1;bI.inlineBlockNeedsLayout=(bv.offsetWidth===3);bv.style.display="block";bv.style.overflow="visible";bv.innerHTML="<div style='width:5px;'></div>";bI.shrinkWrapBlocks=(bv.offsetWidth!==3)}bv.style.cssText=bN+e;bv.innerHTML=bQ;bV=bv.firstChild;bW=bV.firstChild;bO=bV.nextSibling.firstChild.firstChild;bP={doesNotAddBorder:(bW.offsetTop!==5),doesAddBorderForTableAndCells:(bO.offsetTop===5)};bW.style.position="fixed";bW.style.top="20px";bP.fixedPosition=(bW.offsetTop===20||bW.offsetTop===15);bW.style.position=bW.style.top="";bV.style.overflow="hidden";bV.style.position="relative";bP.subtractsBorderForOverflowNotVisible=(bW.offsetTop===-5);bP.doesNotIncludeMarginInBodyOffset=(bS.offsetTop!==bL);if(bd.getComputedStyle){bv.style.marginTop="1%";bI.pixelMargin=(bd.getComputedStyle(bv,null)||{marginTop:0}).marginTop!=="1%"}if(typeof bM.style.zoom!=="undefined"){bM.style.zoom=1}bS.removeChild(bM);bR=bv=bM=null;b.extend(bI,bP)});return bI})();var aT=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(bD,bC){var by,bv,bB,e,bx,bw=this[0],bA=0,bz=null;if(bD===L){if(this.length){bz=b.data(bw);if(bw.nodeType===1&&!b._data(bw,"parsedAttrs")){bB=bw.attributes;for(bx=bB.length;bA<bx;bA++){e=bB[bA].name;if(e.indexOf("data-")===0){e=b.camelCase(e.substring(5));a6(bw,e,bz[e])}}b._data(bw,"parsedAttrs",true)}}return bz}if(typeof bD==="object"){return this.each(function(){b.data(this,bD)})}by=bD.split(".",2);by[1]=by[1]?"."+by[1]:"";bv=by[1]+"!";return b.access(this,function(bE){if(bE===L){bz=this.triggerHandler("getData"+bv,[by[0]]);if(bz===L&&bw){bz=b.data(bw,bD);bz=a6(bw,bD,bz)}return bz===L&&by[1]?this.data(by[0]):bz}by[1]=bE;this.each(function(){var bF=b(this);bF.triggerHandler("setData"+bv,by);b.data(this,bD,bE);bF.triggerHandler("changeData"+bv,by)})},null,bC,arguments.length>1,null,false)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a6(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?+by:aT.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bj(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bj(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bj(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){var bw=2;if(typeof e!=="string"){bv=e;e="fx";bw--}if(arguments.length<bw){return b.queue(this[0],e)}return bv===L?this:this.each(function(){var bx=b.queue(this,e,bv);if(e==="fx"&&bx[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise(bw)}});var aQ=/[\n\t\r]/g,ag=/\s+/,aV=/\r/g,g=/^(?:button|input)$/i,C=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,E=b.support.getSetAttribute,bf,aZ,aG;b.fn.extend({attr:function(e,bv){return b.access(this,b.attr,e,bv,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,b.prop,e,bv,arguments.length>1)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(ag);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(ag);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aQ," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(ag);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aQ," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.type]||b.valHooks[bw.nodeName.toLowerCase()];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aV,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aZ:bf)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(by,bA){var bz,bB,bw,e,bv,bx=0;if(bA&&by.nodeType===1){bB=bA.toLowerCase().split(ag);e=bB.length;for(;bx<e;bx++){bw=bB[bx];if(bw){bz=b.propFix[bw]||bw;bv=ao.test(bw);if(!bv){b.attr(by,bw,"")}by.removeAttribute(E?bw:bz);if(bv&&bz in by){by[bz]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(bf&&b.nodeName(bv,"button")){return bf.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(bf&&b.nodeName(bv,"button")){return bf.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):C.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aZ={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!E){aG={name:true,id:true,coords:true};bf=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aG[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=bf.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:bf.get,set:function(bv,bw,e){if(bw===""){bw="false"}bf.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var be=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/(?:^|\s)hover(\.\S+)?\b/,aP=/^key/,bg=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler;by=bv.selector}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:by&&Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bd,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(bH){bH=b.event.fix(bH||bd.event);var bD=((b._data(this,"events")||{})[bH.type]||[]),bC=bD.delegateCount,bx=[].slice.call(arguments,0),bE=!bH.exclusive&&!bH.namespace,bz=b.event.special[bH.type]||{},bv=[],bJ,bG,by,bA,bK,bI,bB,bw,e,bF,bL;bx[0]=bH;bH.delegateTarget=this;if(bz.preDispatch&&bz.preDispatch.call(this,bH)===false){return}if(bC&&!(bH.button&&bH.type==="click")){bA=b(this);bA.context=this.ownerDocument||this;for(by=bH.target;by!=this;by=by.parentNode||this){if(by.disabled!==true){bI={};bw=[];bA[0]=by;for(bJ=0;bJ<bC;bJ++){e=bD[bJ];bF=e.selector;if(bI[bF]===L){bI[bF]=(e.quick?j(by,e.quick):bA.is(bF))}if(bI[bF]){bw.push(e)}}if(bw.length){bv.push({elem:by,matches:bw})}}}}if(bD.length>bC){bv.push({elem:this,matches:bD.slice(bC)})}for(bJ=0;bJ<bv.length&&!bH.isPropagationStopped();bJ++){bB=bv[bJ];bH.currentTarget=bB.elem;for(bG=0;bG<bB.matches.length&&!bH.isImmediatePropagationStopped();bG++){e=bB.matches[bG];if(bE||(!bH.namespace&&!e.namespace)||bH.namespace_re&&bH.namespace_re.test(e.namespace)){bH.data=e.data;bH.handleObj=e;bK=((b.event.special[e.origType]||{}).handle||e.handler).apply(bB.elem,bx);if(bK!==L){bH.result=bK;if(bK===false){bH.preventDefault();bH.stopPropagation()}}}}}if(bz.postDispatch){bz.postDispatch.call(this,bH)}return bH.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bl}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bl(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bl,isPropagationStopped:bl,isImmediatePropagationStopped:bl};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){e._submit_bubble=true});bv._submit_attached=true}})},postDispatch:function(e){if(e._submit_bubble){delete e._submit_bubble;if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}}},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(be.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(be.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return be.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=bz||e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bl}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on(bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.origType+"."+bv.namespace:bv.origType,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bl}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aP.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bg.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9||e===11){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}bE.match.globalPOS=bD;var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,bb=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.globalPOS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aH(this,e,false),"not",e)},filter:function(e){return this.pushStack(aH(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(B(bx[0])||B(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function B(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||bb.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aH(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aS.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aS="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ah=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,v=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ai=new RegExp("<(?:"+aS+")[\\s/>]","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bn=/\/(java|ecma)script/i,aO=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){return b.access(this,function(bv){return bv===L?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(bv))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(e){return b.access(this,function(by){var bx=this[0]||{},bw=0,bv=this.length;if(by===L){return bx.nodeType===1?bx.innerHTML.replace(ah,""):null}if(typeof by==="string"&&!ae.test(by)&&(b.support.leadingWhitespace||!ar.test(by))&&!ax[(d.exec(by)||["",""])[1].toLowerCase()]){by=by.replace(R,"<$1></$2>");try{for(;bw<bv;bw++){bx=this[bw]||{};if(bx.nodeType===1){b.cleanData(bx.getElementsByTagName("*"));bx.innerHTML=by}}bx=0}catch(bz){}}if(bx){this.empty().append(by)}},null,e,arguments.length)},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?bc(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,function(bG,bH){if(bH.src){b.ajax({type:"GET",global:false,url:bH.src,async:false,dataType:"script"})}else{b.globalEval((bH.text||bH.textContent||bH.innerHTML||"").replace(aO,"/*$0*/"))}if(bH.parentNode){bH.parentNode.removeChild(bH)}})}}return this}});function bc(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function s(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by,bw[by][bx])}}}if(bz.data){bz.data=b.extend({},bz.data)}}function aj(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}else{if(bw==="script"&&e.text!==bv.text){e.text=bv.text}}}}}e.removeAttribute(b.expando);e.removeAttribute("_submit_attached");e.removeAttribute("_change_attached")}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ai.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bh(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function D(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function am(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||b.isXMLDoc(by)||!ai.test("<"+by.nodeName+">")?by.cloneNode(true):am(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){aj(by,bz);e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){if(bv[bx]){aj(e[bx],bv[bx])}}}if(bA){s(by,bz);if(bw){e=bh(by);bv=bh(bz);for(bx=0;e[bx];++bx){s(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bI,bw,bv,bx){var bA,bH,bD,bJ=[];bw=bw||av;if(typeof bw.createElement==="undefined"){bw=bw.ownerDocument||bw[0]&&bw[0].ownerDocument||av}for(var bE=0,bG;(bG=bI[bE])!=null;bE++){if(typeof bG==="number"){bG+=""}if(!bG){continue}if(typeof bG==="string"){if(!W.test(bG)){bG=bw.createTextNode(bG)}else{bG=bG.replace(R,"<$1></$2>");var bN=(d.exec(bG)||["",""])[1].toLowerCase(),bz=ax[bN]||ax._default,bK=bz[0],bB=bw.createElement("div"),bL=ac.childNodes,bM;if(bw===av){ac.appendChild(bB)}else{a(bw).appendChild(bB)}bB.innerHTML=bz[1]+bG+bz[2];while(bK--){bB=bB.lastChild}if(!b.support.tbody){var by=v.test(bG),e=bN==="table"&&!by?bB.firstChild&&bB.firstChild.childNodes:bz[1]==="<table>"&&!by?bB.childNodes:[];for(bD=e.length-1;bD>=0;--bD){if(b.nodeName(e[bD],"tbody")&&!e[bD].childNodes.length){e[bD].parentNode.removeChild(e[bD])}}}if(!b.support.leadingWhitespace&&ar.test(bG)){bB.insertBefore(bw.createTextNode(ar.exec(bG)[0]),bB.firstChild)}bG=bB.childNodes;if(bB){bB.parentNode.removeChild(bB);if(bL.length>0){bM=bL[bL.length-1];if(bM&&bM.parentNode){bM.parentNode.removeChild(bM)}}}}}var bF;if(!b.support.appendChecked){if(bG[0]&&typeof(bF=bG.length)==="number"){for(bD=0;bD<bF;bD++){D(bG[bD])}}else{D(bG)}}if(bG.nodeType){bJ.push(bG)}else{bJ=b.merge(bJ,bG)}}if(bv){bA=function(bO){return !bO.type||bn.test(bO.type)};for(bE=0;bJ[bE];bE++){bH=bJ[bE];if(bx&&b.nodeName(bH,"script")&&(!bH.type||bn.test(bH.type))){bx.push(bH.parentNode?bH.parentNode.removeChild(bH):bH)}else{if(bH.nodeType===1){var bC=b.grep(bH.getElementsByTagName("script"),bA);bJ.splice.apply(bJ,[bE+1,0].concat(bC))}bv.appendChild(bH)}}}return bJ},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});var al=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,y=/([A-Z]|^ms)/g,bo=/^[\-+]?(?:\d*\.)?\d+$/i,a1=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,I=/^([\-+])=([\-+.\de]+)/,aE=/^margin/,a9={position:"absolute",visibility:"hidden",display:"block"},G=["Top","Right","Bottom","Left"],Z,aJ,aY;b.fn.css=function(e,bv){return b.access(this,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)},e,bv,arguments.length>1)};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(by,bx,bz){var e={},bw,bv;for(bv in bx){e[bv]=by.style[bv];by.style[bv]=bx[bv]}bw=bz.call(by);for(bv in bx){by.style[bv]=e[bv]}return bw}});b.curCSS=b.css;if(av.defaultView&&av.defaultView.getComputedStyle){aJ=function(bA,bw){var bv,bz,e,by,bx=bA.style;bw=bw.replace(y,"-$1").toLowerCase();if((bz=bA.ownerDocument.defaultView)&&(e=bz.getComputedStyle(bA,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(bA.ownerDocument.documentElement,bA)){bv=b.style(bA,bw)}}if(!b.support.pixelMargin&&e&&aE.test(bw)&&a1.test(bv)){by=bx.width;bx.width=bv;bv=e.width;bx.width=by}return bv}}if(av.documentElement.currentStyle){aY=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv==null&&bx&&(by=bx[bw])){bv=by}if(a1.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":bv;bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aJ||aY;function af(by,bw,bv){var bz=bw==="width"?by.offsetWidth:by.offsetHeight,bx=bw==="width"?1:0,e=4;if(bz>0){if(bv!=="border"){for(;bx<e;bx+=2){if(!bv){bz-=parseFloat(b.css(by,"padding"+G[bx]))||0}if(bv==="margin"){bz+=parseFloat(b.css(by,bv+G[bx]))||0}else{bz-=parseFloat(b.css(by,"border"+G[bx]+"Width"))||0}}}return bz+"px"}bz=Z(by,bw);if(bz<0||bz==null){bz=by.style[bw]}if(a1.test(bz)){return bz}bz=parseFloat(bz)||0;if(bv){for(;bx<e;bx+=2){bz+=parseFloat(b.css(by,"padding"+G[bx]))||0;if(bv!=="padding"){bz+=parseFloat(b.css(by,"border"+G[bx]+"Width"))||0}if(bv==="margin"){bz+=parseFloat(b.css(by,bv+G[bx]))||0}}}return bz+"px"}b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){if(bx){if(by.offsetWidth!==0){return af(by,e,bw)}else{return b.swap(by,a9,function(){return af(by,e,bw)})}}},set:function(bw,bx){return bo.test(bx)?bx+"px":bx}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(al,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=al.test(bw)?bw.replace(al,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bv,e){return b.swap(bv,{display:"inline-block"},function(){if(e){return Z(bv,"margin-right")}else{return bv.style.marginRight}})}}}});if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}b.each({margin:"",padding:"",border:"Width"},function(e,bv){b.cssHooks[e+bv]={expand:function(by){var bx,bz=typeof by==="string"?by.split(" "):[by],bw={};for(bx=0;bx<4;bx++){bw[e+G[bx]+bv]=bz[bx]||bz[bx-2]||bz[0]}return bw}}});var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,a0=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aN=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aR=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a7=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,p=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,z=b.fn.load,aa={},q={},aF,r,aW=["*/"]+["*"];try{aF=bm.href}catch(aw){aF=av.createElement("a");aF.href="";aF=aF.href}r=K.exec(aF.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aX(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aX(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aX(bv,bE,bz,bD,"*",bx)}return bC}function an(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&z){return z.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a7,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||p.test(this.nodeName)||a0.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){an(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}an(bv,e);return bv},ajaxSettings:{url:aF,isLocal:aN.test(r[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bd.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(q),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bk(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=F(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,r[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=r[1]||bI[2]!=r[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(r[3]||(r[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aX(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aR.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aW+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aX(q,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){u(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function u(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{u(bw+"["+(typeof bz==="object"?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&b.type(by)==="object"){for(var e in by){u(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bk(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function F(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),t=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=(typeof bD.data==="string")&&/^application\/x\-www\-form\-urlencoded/.test(bD.contentType);if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(t.test(bD.url)||bx&&t.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bd[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(t,bv);if(bD.url===e){if(bx){by=by.replace(t,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bd[bw]=function(bE){bB=[bE]};bC.always(function(){bd[bw]=bz;if(bB&&b.isFunction(bz)){bd[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var A=bd.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,x=0,N;function aM(){try{return new bd.XMLHttpRequest()}catch(bv){}}function ak(){try{return new bd.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bd.ActiveXObject?function(){return !this.isLocal&&aM()||ak()}:aM;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(A){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}try{bI.text=bA.responseText}catch(bK){}try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++x;if(A){if(!N){N={};b(bd).unload(A)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},ba,m,aB=/^(?:toggle|show|hide)$/,aU=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a4,aI=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a5;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a2("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if((by===""&&b.css(bw,"display")==="none")||!b.contains(bw.ownerDocument.documentElement,bw)){b._data(bw,"olddisplay",w(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a2("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a2("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bL=this.nodeType===1,bJ=bL&&b(this).is(":hidden"),bB,bG,bD,bK,bN,bF,bI,bC,bH,bM,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}if((bN=b.cssHooks[bB])&&"expand" in bN){bF=bN.expand(bz[bB]);delete bz[bB];for(bD in bF){if(!(bD in bz)){bz[bD]=bF[bD]}}}}for(bB in bz){bG=bz[bB];if(b.isArray(bG)){bE.animatedProperties[bB]=bG[1];bG=bz[bB]=bG[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bG==="hide"&&bJ||bG==="show"&&!bJ){return bE.complete.call(this)}if(bL&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||w(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bK=new b.fx(this,bE,bD);bG=bz[bD];if(aB.test(bG)){bA=b._data(this,"toggle"+bD)||(bG==="toggle"?bJ?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bK[bA]()}else{bK[bG]()}}else{bI=aU.exec(bG);bC=bK.cur();if(bI){bH=parseFloat(bI[2]);bM=bI[3]||(b.cssNumber[bD]?"":"px");if(bM!=="px"){b.style(this,bD,(bH||1)+bM);bC=((bH||1)/bK.cur())*bC;b.style(this,bD,bC+bM)}if(bI[1]){bH=((bI[1]==="-="?-1:1)*bH)+bC}bK.custom(bC,bH,bM)}else{bK.custom(bC,bG,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bi(){setTimeout(at,0);return(a5=b.now())}function at(){a5=L}function a2(bv,e){var bw={};b.each(aI.concat.apply([],aI.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a2("show",1),slideUp:a2("hide",1),slideToggle:a2("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(e){return e},swing:function(e){return(-Math.cos(e*Math.PI)/2)+0.5}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a5||bi();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(b._data(e.elem,"fxshow"+e.prop)===L){if(e.options.hide){b._data(e.elem,"fxshow"+e.prop,e.start)}else{if(e.options.show){b._data(e.elem,"fxshow"+e.prop,e.end)}}}};if(bv()&&b.timers.push(bv)&&!a4){a4=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a5||bi(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a4);a4=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(aI.concat.apply([],aI),function(e,bv){if(bv.indexOf("margin")){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function w(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!ba){ba=av.createElement("iframe");ba.frameBorder=ba.width=ba.height=0}e.appendChild(ba);if(!m||!ba.createElement){m=(ba.contentWindow||ba.contentDocument).document;m.write((b.support.boxModel?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(ba)}Q[bx]=bw}return Q[bx]}var a8,V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){a8=function(by,bH,bw,bB){try{bB=by.getBoundingClientRect()}catch(bF){}if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aL(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{a8=function(bz,bE,bx){var bC,bw=bz.offsetParent,bv=bz,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.fn.offset=function(e){if(arguments.length){return e===L?this:this.each(function(bx){b.offset.setOffset(this,e,bx)})}var bv=this[0],bw=bv&&bv.ownerDocument;if(!bw){return null}if(bv===bw.body){return b.offset.bodyOffset(bv)}return a8(bv,bw,bw.documentElement)};b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(bw,bv){var e=/Y/.test(bv);b.fn[bw]=function(bx){return b.access(this,function(by,bB,bA){var bz=aL(by);if(bA===L){return bz?(bv in bz)?bz[bv]:b.support.boxModel&&bz.document.documentElement[bB]||bz.document.body[bB]:by[bB]}if(bz){bz.scrollTo(!e?bA:b(bz).scrollLeft(),e?bA:b(bz).scrollTop())}else{by[bB]=bA}},bw,bx,arguments.length,null)}});function aL(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each({Height:"height",Width:"width"},function(bw,bx){var bv="client"+bw,e="scroll"+bw,by="offset"+bw;b.fn["inner"+bw]=function(){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,"padding")):this[bx]():null};b.fn["outer"+bw]=function(bA){var bz=this[0];return bz?bz.style?parseFloat(b.css(bz,bx,bA?"margin":"border")):this[bx]():null};b.fn[bx]=function(bz){return b.access(this,function(bC,bB,bD){var bF,bE,bG,bA;if(b.isWindow(bC)){bF=bC.document;bE=bF.documentElement[bv];return b.support.boxModel&&bE||bF.body&&bF.body[bv]||bE}if(bC.nodeType===9){bF=bC.documentElement;if(bF[bv]>=bF[e]){return bF[bv]}return Math.max(bC.body[e],bF[e],bC.body[by],bF[by])}if(bD===L){bG=b.css(bC,bB);bA=parseFloat(bG);return b.isNumeric(bA)?bA:bG}b(bC).css(bB,bD)},bx,bz,arguments.length,null)}});bd.jQuery=bd.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ * 
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*!
+ * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
+ * http://www.smartmenus.org/
+ *
+ * Copyright Vasil Dinkov, Vadikom Web Ltd.
+ * http://vadikom.com
+ *
+ * Licensed MIT
+ */
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
\ No newline at end of file
diff --git a/doc/1.3.0/libguac/layer-types_8h.html b/doc/1.3.0/libguac/layer-types_8h.html
new file mode 100644
index 0000000..9c1d4ef
--- /dev/null
+++ b/doc/1.3.0/libguac/layer-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/layer-types_8h_source.html b/doc/1.3.0/libguac/layer-types_8h_source.html
new file mode 100644
index 0000000..1f43533
--- /dev/null
+++ b/doc/1.3.0/libguac/layer-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> <a class="code" href="structguac__layer.html">guac_layer</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/layer_8h.html b/doc/1.3.0/libguac/layer_8h.html
new file mode 100644
index 0000000..8955667
--- /dev/null
+++ b/doc/1.3.0/libguac/layer_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">layer.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html">guac_layer</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single layer within the Guacamole protocol.  <a href="structguac__layer.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/layer_8h_source.html b/doc/1.3.0/libguac/layer_8h_source.html
new file mode 100644
index 0000000..170618a
--- /dev/null
+++ b/doc/1.3.0/libguac/layer_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__layer.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">   39</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="ttc" id="structguac__layer_html_a686a85d9d758ba5f2f4426a4c4ae13ba"><div class="ttname"><a href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this layer.</div><div class="ttdef"><b>Definition:</b> layer.h:39</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers.</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/menu.js b/doc/1.3.0/libguac/menu.js
new file mode 100644
index 0000000..433c15b
--- /dev/null
+++ b/doc/1.3.0/libguac/menu.js
@@ -0,0 +1,50 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchEnabled) {
+    if (serverSide) {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+    } else {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+    }
+  }
+  $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/doc/1.3.0/libguac/menudata.js b/doc/1.3.0/libguac/menudata.js
new file mode 100644
index 0000000..f4164b2
--- /dev/null
+++ b/doc/1.3.0/libguac/menudata.js
@@ -0,0 +1,109 @@
+/*
+@ @licstart  The following is the entire license notice for the
+JavaScript code in this file.
+
+Copyright (C) 1997-2017 by Dimitri van Heesch
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+@licend  The above is the entire license notice
+for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Data Structures",url:"annotated.html",children:[
+{text:"Data Structures",url:"annotated.html"},
+{text:"Data Structure Index",url:"classes.html"},
+{text:"Data Fields",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"c",url:"functions.html#index_c"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"i",url:"functions.html#index_i"},
+{text:"j",url:"functions.html#index_j"},
+{text:"k",url:"functions.html#index_k"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"u",url:"functions.html#index_u"},
+{text:"v",url:"functions.html#index_v"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Variables",url:"functions_vars.html",children:[
+{text:"a",url:"functions_vars.html#index_a"},
+{text:"b",url:"functions_vars.html#index_b"},
+{text:"c",url:"functions_vars.html#index_c"},
+{text:"d",url:"functions_vars.html#index_d"},
+{text:"e",url:"functions_vars.html#index_e"},
+{text:"f",url:"functions_vars.html#index_f"},
+{text:"g",url:"functions_vars.html#index_g"},
+{text:"i",url:"functions_vars.html#index_i"},
+{text:"j",url:"functions_vars.html#index_j"},
+{text:"k",url:"functions_vars.html#index_k"},
+{text:"l",url:"functions_vars.html#index_l"},
+{text:"m",url:"functions_vars.html#index_m"},
+{text:"o",url:"functions_vars.html#index_o"},
+{text:"p",url:"functions_vars.html#index_p"},
+{text:"r",url:"functions_vars.html#index_r"},
+{text:"s",url:"functions_vars.html#index_s"},
+{text:"t",url:"functions_vars.html#index_t"},
+{text:"u",url:"functions_vars.html#index_u"},
+{text:"v",url:"functions_vars.html#index_v"},
+{text:"w",url:"functions_vars.html#index_w"}]}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"Globals",url:"globals.html",children:[
+{text:"All",url:"globals.html",children:[
+{text:"a",url:"globals.html#index_a"},
+{text:"c",url:"globals_c.html#index_c"},
+{text:"e",url:"globals_e.html#index_e"},
+{text:"g",url:"globals_g.html#index_g"},
+{text:"h",url:"globals_h.html#index_h"},
+{text:"l",url:"globals_l.html#index_l"},
+{text:"p",url:"globals_p.html#index_p"},
+{text:"s",url:"globals_s.html#index_s"},
+{text:"t",url:"globals_t.html#index_t"},
+{text:"u",url:"globals_u.html#index_u"},
+{text:"w",url:"globals_w.html#index_w"}]},
+{text:"Functions",url:"globals_func.html",children:[
+{text:"a",url:"globals_func.html#index_a"},
+{text:"c",url:"globals_func.html#index_c"},
+{text:"h",url:"globals_func.html#index_h"},
+{text:"p",url:"globals_func.html#index_p"},
+{text:"s",url:"globals_func.html#index_s"},
+{text:"t",url:"globals_func.html#index_t"},
+{text:"u",url:"globals_func.html#index_u"},
+{text:"w",url:"globals_func.html#index_w"}]},
+{text:"Variables",url:"globals_vars.html"},
+{text:"Typedefs",url:"globals_type.html",children:[
+{text:"a",url:"globals_type.html#index_a"},
+{text:"c",url:"globals_type.html#index_c"},
+{text:"s",url:"globals_type.html#index_s"},
+{text:"t",url:"globals_type.html#index_t"},
+{text:"u",url:"globals_type.html#index_u"}]},
+{text:"Enumerations",url:"globals_enum.html"},
+{text:"Enumerator",url:"globals_eval.html",children:[
+{text:"g",url:"globals_eval.html#index_g"}]},
+{text:"Macros",url:"globals_defs.html",children:[
+{text:"e",url:"globals_defs.html#index_e"},
+{text:"g",url:"globals_defs.html#index_g"}]}]}]}]}
diff --git a/doc/1.3.0/libguac/nav_f.png b/doc/1.3.0/libguac/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/doc/1.3.0/libguac/nav_f.png
Binary files differ
diff --git a/doc/1.3.0/libguac/nav_g.png b/doc/1.3.0/libguac/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/doc/1.3.0/libguac/nav_g.png
Binary files differ
diff --git a/doc/1.3.0/libguac/nav_h.png b/doc/1.3.0/libguac/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/doc/1.3.0/libguac/nav_h.png
Binary files differ
diff --git a/doc/1.3.0/libguac/object-types_8h.html b/doc/1.3.0/libguac/object-types_8h.html
new file mode 100644
index 0000000..0a4108c
--- /dev/null
+++ b/doc/1.3.0/libguac/object-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/object-types_8h_source.html b/doc/1.3.0/libguac/object-types_8h_source.html
new file mode 100644
index 0000000..738bfbe
--- /dev/null
+++ b/doc/1.3.0/libguac/object-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> <a class="code" href="structguac__object.html">guac_object</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/object_8h.html b/doc/1.3.0/libguac/object_8h.html
new file mode 100644
index 0000000..3617347
--- /dev/null
+++ b/doc/1.3.0/libguac/object_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">object.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html">guac_object</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single object within the Guacamole protocol.  <a href="structguac__object.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/object_8h_source.html b/doc/1.3.0/libguac/object_8h_source.html
new file mode 100644
index 0000000..a648ac7
--- /dev/null
+++ b/doc/1.3.0/libguac/object_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__object.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">   65</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">   88</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects.</div></div>
+<div class="ttc" id="structguac__object_html_a33771a9a72c560b8ea99f940c4c412a6"><div class="ttname"><a href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> object.h:88</div></div>
+<div class="ttc" id="structguac__object_html_ac9ca62cec5ba1124f8272da3adf7c44e"><div class="ttname"><a href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this object.</div><div class="ttdef"><b>Definition:</b> object.h:42</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="structguac__object_html_a643f03695d246bbf73b5c4942755a4b4"><div class="ttname"><a href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this object.</div><div class="ttdef"><b>Definition:</b> object.h:37</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="structguac__object_html_a0e86747e4f1265935310f0df3a7f4b21"><div class="ttname"><a href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> object.h:65</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/open.png b/doc/1.3.0/libguac/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/doc/1.3.0/libguac/open.png
Binary files differ
diff --git a/doc/1.3.0/libguac/pages.html b/doc/1.3.0/libguac/pages.html
new file mode 100644
index 0000000..d446da1
--- /dev/null
+++ b/doc/1.3.0/libguac/pages.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Related Pages</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser-constants_8h.html b/doc/1.3.0/libguac/parser-constants_8h.html
new file mode 100644
index 0000000..7d89da9
--- /dev/null
+++ b/doc/1.3.0/libguac/parser-constants_8h.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol parser.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6cb4157503008653c5200ea640fe8744"><td class="memItemLeft" align="right" valign="top"><a id="a6cb4157503008653c5200ea640fe8744"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">GUAC_INSTRUCTION_MAX_LENGTH</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:a6cb4157503008653c5200ea640fe8744"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters per instruction. <br /></td></tr>
+<tr class="separator:a6cb4157503008653c5200ea640fe8744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a408e5069154be109ad3dcf45cbc0b00f"><td class="memItemLeft" align="right" valign="top"><a id="a408e5069154be109ad3dcf45cbc0b00f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">GUAC_INSTRUCTION_MAX_DIGITS</a>&#160;&#160;&#160;5</td></tr>
+<tr class="memdesc:a408e5069154be109ad3dcf45cbc0b00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of digits to allow per length prefix. <br /></td></tr>
+<tr class="separator:a408e5069154be109ad3dcf45cbc0b00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f314dc5700812ca93ff132a15b86a46"><td class="memItemLeft" align="right" valign="top"><a id="a6f314dc5700812ca93ff132a15b86a46"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>&#160;&#160;&#160;128</td></tr>
+<tr class="memdesc:a6f314dc5700812ca93ff132a15b86a46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of elements per instruction, including the opcode. <br /></td></tr>
+<tr class="separator:a6f314dc5700812ca93ff132a15b86a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol parser. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser-constants_8h_source.html b/doc/1.3.0/libguac/parser-constants_8h_source.html
new file mode 100644
index 0000000..3fea601
--- /dev/null
+++ b/doc/1.3.0/libguac/parser-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">   32</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_LENGTH 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">   37</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_DIGITS 5</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">   42</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_ELEMENTS 128</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser-types_8h.html b/doc/1.3.0/libguac/parser-types_8h.html
new file mode 100644
index 0000000..995a3d6
--- /dev/null
+++ b/doc/1.3.0/libguac/parser-types_8h.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> { <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a>
+ }</td></tr>
+<tr class="memdesc:a842bb8c1d5569ebebae3fdadb2527f30"><td class="mdescLeft">&#160;</td><td class="mdescRight">All possible states of the instruction parser.  <a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">More...</a><br /></td></tr>
+<tr class="separator:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a842bb8c1d5569ebebae3fdadb2527f30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a842bb8c1d5569ebebae3fdadb2527f30">&#9670;&nbsp;</a></span>guac_parse_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All possible states of the instruction parser. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"></a>GUAC_PARSE_LENGTH&#160;</td><td class="fielddoc"><p>The parser is currently waiting for data to complete the length prefix of the current element of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"></a>GUAC_PARSE_CONTENT&#160;</td><td class="fielddoc"><p>The parser has finished reading the length prefix and is currently waiting for data to complete the content of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"></a>GUAC_PARSE_COMPLETE&#160;</td><td class="fielddoc"><p>The instruction has been fully parsed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"></a>GUAC_PARSE_ERROR&#160;</td><td class="fielddoc"><p>The instruction cannot be parsed because of a protocol error. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser-types_8h_source.html b/doc/1.3.0/libguac/parser-types_8h_source.html
new file mode 100644
index 0000000..c142358
--- /dev/null
+++ b/doc/1.3.0/libguac/parser-types_8h_source.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">   33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">   39</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>,</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">   45</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">   50</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">   55</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> <a class="code" href="structguac__parser.html">guac_parser</a>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a></div><div class="ttdoc">The instruction has been fully parsed.</div><div class="ttdef"><b>Definition:</b> parser-types.h:50</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a></div><div class="ttdoc">The parser is currently waiting for data to complete the length prefix of the current element of the ...</div><div class="ttdef"><b>Definition:</b> parser-types.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser.</div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="ttdoc">The instruction cannot be parsed because of a protocol error.</div><div class="ttdef"><b>Definition:</b> parser-types.h:55</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a></div><div class="ttdoc">The parser has finished reading the length prefix and is currently waiting for data to complete the c...</div><div class="ttdef"><b>Definition:</b> parser-types.h:45</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser_8h.html b/doc/1.3.0/libguac/parser_8h.html
new file mode 100644
index 0000000..a588e10
--- /dev/null
+++ b/doc/1.3.0/libguac/parser_8h.html
@@ -0,0 +1,399 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">parser.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html">guac_parser</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  <a href="structguac__parser.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a69dc498eb4d71d353bff07b88ec21cad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a> ()</td></tr>
+<tr class="memdesc:a69dc498eb4d71d353bff07b88ec21cad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new parser.  <a href="#a69dc498eb4d71d353bff07b88ec21cad">More...</a><br /></td></tr>
+<tr class="separator:a69dc498eb4d71d353bff07b88ec21cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends data from the given buffer to the given parser.  <a href="#ab1ca22b7bf9c232cce0d122f03dc183d">More...</a><br /></td></tr>
+<tr class="separator:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8899dd607997fcffd78517947b17760b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:a8899dd607997fcffd78517947b17760b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of unparsed bytes stored in the given parser's internal buffers.  <a href="#a8899dd607997fcffd78517947b17760b">More...</a><br /></td></tr>
+<tr class="separator:a8899dd607997fcffd78517947b17760b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer.  <a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">More...</a><br /></td></tr>
+<tr class="separator:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all memory allocated to the given parser.  <a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">More...</a><br /></td></tr>
+<tr class="separator:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">More...</a><br /></td></tr>
+<tr class="separator:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac54c94465aead463ce10e9a090b9b701"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout, const char *opcode)</td></tr>
+<tr class="memdesc:ac54c94465aead463ce10e9a090b9b701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.  <a href="#ac54c94465aead463ce10e9a090b9b701">More...</a><br /></td></tr>
+<tr class="separator:ac54c94465aead463ce10e9a090b9b701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a69dc498eb4d71d353bff07b88ec21cad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69dc498eb4d71d353bff07b88ec21cad">&#9670;&nbsp;</a></span>guac_parser_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__parser.html">guac_parser</a>* guac_parser_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new parser. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated parser, or NULL if an error occurs during allocation, in which case guac_error will be set appropriately. </dd></dl>
+
+</div>
+</div>
+<a id="ab1ca22b7bf9c232cce0d122f03dc183d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1ca22b7bf9c232cce0d122f03dc183d">&#9670;&nbsp;</a></span>guac_parser_append()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_append </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends data from the given buffer to the given parser. </p>
+<p>The data will be appended, if possible, to the in-progress instruction as a reference and thus the buffer must remain valid throughout the life of the current instruction. This function may modify the contents of the buffer when those contents are part of an element within the instruction being read.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to append data to. </td></tr>
+    <tr><td class="paramname">buffer</td><td>A buffer containing data that should be appended to this parser. </td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes available for appending within the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes appended to this parser, which may be zero if more data is needed. </dd></dl>
+
+</div>
+</div>
+<a id="ac54c94465aead463ce10e9a090b9b701"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac54c94465aead463ce10e9a090b9b701">&#9670;&nbsp;</a></span>guac_parser_expect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_expect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. </p>
+<p>This operates identically to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection.">guac_parser_read()</a>, except that an error is returned if the expected opcode is not received.</p>
+<p>If an error occurs reading the instruction, NULL is returned, and guac_error is set appropriately.</p>
+<p>If the instruction read is not the expected instruction, NULL is returned, and guac_error is set to GUAC_STATUS_BAD_STATE.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction with the given opcode was read, non-zero otherwise. If an instruction was read, but the instruction had a different opcode, non-zero is returned and guac_error is set to GUAC_STATUS_BAD_STATE. </dd></dl>
+
+</div>
+</div>
+<a id="ad3b7d4df1ca25c5bced1c08b329f0a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">&#9670;&nbsp;</a></span>guac_parser_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_parser_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees all memory allocated to the given parser. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8899dd607997fcffd78517947b17760b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8899dd607997fcffd78517947b17760b">&#9670;&nbsp;</a></span>guac_parser_length()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_length </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the number of unparsed bytes stored in the given parser's internal buffers. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to return the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of unparsed bytes stored in the given parser. </dd></dl>
+
+</div>
+</div>
+<a id="a8a1169f5040732e4f4b55ee6c1e1fe93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">&#9670;&nbsp;</a></span>guac_parser_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>This may result in additional data being read from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, stored internally within a buffer for future parsing. Future calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection.">guac_parser_read()</a> will read from the interal buffer before reading from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. Data from the internal buffer can be removed and used elsewhere through <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3" title="Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer.">guac_parser_shift()</a>.</p>
+<p>If an error occurs reading the instruction, non-zero is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction was read within the time allowed, or non-zero if no instruction could be read. If the instruction could not be read completely because the timeout elapsed, in which case guac_error will be set to GUAC_STATUS_INPUT_TIMEOUT and additional calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection.">guac_parser_read()</a> will be required. </dd></dl>
+
+</div>
+</div>
+<a id="a56e7b2a85abdb6cb4ec4bd6e47a92ed3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">&#9670;&nbsp;</a></span>guac_parser_shift()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_shift </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to remove unparsed bytes from. </td></tr>
+    <tr><td class="paramname">buffer</td><td>The buffer to store the unparsed bytes within. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the given buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes stored in the given buffer. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/parser_8h_source.html b/doc/1.3.0/libguac/parser_8h_source.html
new file mode 100644
index 0000000..1d87ed6
--- /dev/null
+++ b/doc/1.3.0/libguac/parser_8h_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-types_8h.html">parser-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-constants_8h.html">parser-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__parser.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">   39</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">   49</a></span>&#160;    <span class="keywordtype">char</span>** <a class="code" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">   54</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> <a class="code" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">int</span> __element_length;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">int</span> __elementc;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">char</span>* __elementv[<a class="code" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>];</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_start;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_end;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">char</span> __instructionbuf[32768];</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<a class="code" href="structguac__parser.html">guac_parser</a>* <a class="code" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a>();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="keywordtype">void</span> <a class="code" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="ttc" id="structguac__parser_html_a9bd5362b9de8cf2adfcdff2c86bb4701"><div class="ttname"><a href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser::argv</a></div><div class="ttdeci">char ** argv</div><div class="ttdoc">Array of all arguments passed to this instruction.</div><div class="ttdef"><b>Definition:</b> parser.h:49</div></div>
+<div class="ttc" id="parser_8h_html_a69dc498eb4d71d353bff07b88ec21cad"><div class="ttname"><a href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a></div><div class="ttdeci">guac_parser * guac_parser_alloc()</div><div class="ttdoc">Allocates a new parser.</div></div>
+<div class="ttc" id="parser_8h_html_a8a1169f5040732e4f4b55ee6c1e1fe93"><div class="ttname"><a href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a></div><div class="ttdeci">int guac_parser_read(guac_parser *parser, guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Reads a single instruction from the given guac_socket connection.</div></div>
+<div class="ttc" id="parser_8h_html_ac54c94465aead463ce10e9a090b9b701"><div class="ttname"><a href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a></div><div class="ttdeci">int guac_parser_expect(guac_parser *parser, guac_socket *socket, int usec_timeout, const char *opcode)</div><div class="ttdoc">Reads a single instruction from the given guac_socket.</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="parser_8h_html_ab1ca22b7bf9c232cce0d122f03dc183d"><div class="ttname"><a href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a></div><div class="ttdeci">int guac_parser_append(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Appends data from the given buffer to the given parser.</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html"><div class="ttname"><a href="parser-types_8h.html">parser-types.h</a></div><div class="ttdoc">Type definitions related to parsing the Guacamole protocol.</div></div>
+<div class="ttc" id="parser_8h_html_a8899dd607997fcffd78517947b17760b"><div class="ttname"><a href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a></div><div class="ttdeci">int guac_parser_length(guac_parser *parser)</div><div class="ttdoc">Returns the number of unparsed bytes stored in the given parser's internal buffers.</div></div>
+<div class="ttc" id="parser_8h_html_ad3b7d4df1ca25c5bced1c08b329f0a0f"><div class="ttname"><a href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a></div><div class="ttdeci">void guac_parser_free(guac_parser *parser)</div><div class="ttdoc">Frees all memory allocated to the given parser.</div></div>
+<div class="ttc" id="structguac__parser_html_a725767c57dc6f157afe2d7dd6ce281e1"><div class="ttname"><a href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser::opcode</a></div><div class="ttdeci">char * opcode</div><div class="ttdoc">The opcode of the instruction.</div><div class="ttdef"><b>Definition:</b> parser.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser.</div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="structguac__parser_html_a2773500f91b3cdb7de7bdea280228054"><div class="ttname"><a href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser::state</a></div><div class="ttdeci">guac_parse_state state</div><div class="ttdoc">The parse state of the instruction.</div><div class="ttdef"><b>Definition:</b> parser.h:54</div></div>
+<div class="ttc" id="structguac__parser_html_a718ce9e60c8414c367ce393cc4e0cffe"><div class="ttname"><a href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser::argc</a></div><div class="ttdeci">int argc</div><div class="ttdoc">The number of arguments passed to this instruction.</div><div class="ttdef"><b>Definition:</b> parser.h:44</div></div>
+<div class="ttc" id="parser_8h_html_a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><div class="ttname"><a href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a></div><div class="ttdeci">int guac_parser_shift(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer.</div></div>
+<div class="ttc" id="parser-constants_8h_html_a6f314dc5700812ca93ff132a15b86a46"><div class="ttname"><a href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a></div><div class="ttdeci">#define GUAC_INSTRUCTION_MAX_ELEMENTS</div><div class="ttdoc">The maximum number of elements per instruction, including the opcode.</div><div class="ttdef"><b>Definition:</b> parser-constants.h:42</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+<div class="ttc" id="parser-constants_8h_html"><div class="ttname"><a href="parser-constants_8h.html">parser-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol parser.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/plugin-constants_8h.html b/doc/1.3.0/libguac/plugin-constants_8h.html
new file mode 100644
index 0000000..bb0433d
--- /dev/null
+++ b/doc/1.3.0/libguac/plugin-constants_8h.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">plugin-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to client plugins.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ac328a06358d3e07e10999e556f77c05a"><td class="memItemLeft" align="right" valign="top"><a id="ac328a06358d3e07e10999e556f77c05a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>&#160;&#160;&#160;&quot;libguac-client-&quot;</td></tr>
+<tr class="memdesc:ac328a06358d3e07e10999e556f77c05a"><td class="mdescLeft">&#160;</td><td class="mdescRight">String prefix which begins the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:ac328a06358d3e07e10999e556f77c05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3601bb5aaa3ca309987f70bd48005fd"><td class="memItemLeft" align="right" valign="top"><a id="af3601bb5aaa3ca309987f70bd48005fd"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>&#160;&#160;&#160;&quot;.so&quot;</td></tr>
+<tr class="memdesc:af3601bb5aaa3ca309987f70bd48005fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">String suffix which ends the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:af3601bb5aaa3ca309987f70bd48005fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memItemLeft" align="right" valign="top"><a id="a4ce2e3a2b6be66e9ab382fb8d2ab2621"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the library filename of client plugins. <br /></td></tr>
+<tr class="separator:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">GUAC_PROTOCOL_LIBRARY_LIMIT</a></td></tr>
+<tr class="memdesc:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters.  <a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">More...</a><br /></td></tr>
+<tr class="separator:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to client plugins. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a03c00580f4455d35c1ed33ed4dcfe2fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_LIBRARY_LIMIT</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_LIBRARY_LIMIT</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line">(                                  \</div><div class="line">                                                                       \</div><div class="line">      sizeof(<a class="code" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>) - 1 <span class="comment">/* &quot;libguac-client-&quot; */</span> \</div><div class="line">    +        <a class="code" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>      - 1 <span class="comment">/* [up to 256 chars] */</span> \</div><div class="line">    + <span class="keyword">sizeof</span>(<a class="code" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>) - 1 <span class="comment">/* &quot;.so&quot;             */</span> \</div><div class="line">    + 1                                        <span class="comment">/* NULL terminator   */</span> \</div><div class="line">                                                                       \</div><div class="line">)</div><div class="ttc" id="plugin-constants_8h_html_af3601bb5aaa3ca309987f70bd48005fd"><div class="ttname"><a href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_SUFFIX</div><div class="ttdoc">String suffix which ends the library filename of all client plugins.</div><div class="ttdef"><b>Definition:</b> plugin-constants.h:37</div></div>
+<div class="ttc" id="plugin-constants_8h_html_a4ce2e3a2b6be66e9ab382fb8d2ab2621"><div class="ttname"><a href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a></div><div class="ttdeci">#define GUAC_PROTOCOL_NAME_LIMIT</div><div class="ttdoc">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the li...</div><div class="ttdef"><b>Definition:</b> plugin-constants.h:43</div></div>
+<div class="ttc" id="plugin-constants_8h_html_ac328a06358d3e07e10999e556f77c05a"><div class="ttname"><a href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_PREFIX</div><div class="ttdoc">String prefix which begins the library filename of all client plugins.</div><div class="ttdef"><b>Definition:</b> plugin-constants.h:32</div></div>
+</div><!-- fragment -->
+<p>The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/plugin-constants_8h_source.html b/doc/1.3.0/libguac/plugin-constants_8h_source.html
new file mode 100644
index 0000000..cb86d4f
--- /dev/null
+++ b/doc/1.3.0/libguac/plugin-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">   32</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_PREFIX &quot;libguac-client-&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">   37</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_SUFFIX &quot;.so&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">   43</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_NAME_LIMIT 256</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">   51</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_LIMIT (                                  \</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">      sizeof(GUAC_PROTOCOL_LIBRARY_PREFIX) - 1 </span><span class="comment">/* &quot;libguac-client-&quot; */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">    +        GUAC_PROTOCOL_NAME_LIMIT      - 1 </span><span class="comment">/* [up to 256 chars] */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">    + sizeof(GUAC_PROTOCOL_LIBRARY_SUFFIX) - 1 </span><span class="comment">/* &quot;.so&quot;             */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">    + 1                                        </span><span class="comment">/* NULL terminator   */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">)</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/plugin_8h.html b/doc/1.3.0/libguac/plugin_8h.html
new file mode 100644
index 0000000..e306686
--- /dev/null
+++ b/doc/1.3.0/libguac/plugin_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling a client plugin.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling a client plugin. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/plugin_8h_source.html b/doc/1.3.0/libguac/plugin_8h_source.html
new file mode 100644
index 0000000..50a4e81
--- /dev/null
+++ b/doc/1.3.0/libguac/plugin_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin-constants_8h.html">plugin-constants.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="plugin-constants_8h_html"><div class="ttname"><a href="plugin-constants_8h.html">plugin-constants.h</a></div><div class="ttdoc">Constants related to client plugins.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/pool-types_8h.html b/doc/1.3.0/libguac/pool-types_8h.html
new file mode 100644
index 0000000..a99dc68
--- /dev/null
+++ b/doc/1.3.0/libguac/pool-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> pool of unique integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> pool of unique integers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/pool-types_8h_source.html b/doc/1.3.0/libguac/pool-types_8h_source.html
new file mode 100644
index 0000000..f0bb008
--- /dev/null
+++ b/doc/1.3.0/libguac/pool-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> <a class="code" href="structguac__pool__int.html">guac_pool_int</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> <a class="code" href="structguac__pool.html">guac_pool</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/pool_8h.html b/doc/1.3.0/libguac/pool_8h.html
new file mode 100644
index 0000000..3c9ca84
--- /dev/null
+++ b/doc/1.3.0/libguac/pool_8h.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">pool.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html">guac_pool</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pool of integers.  <a href="structguac__pool.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html">guac_pool_int</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single integer within a larger pool of integers.  <a href="structguac__pool__int.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e7589997fdd734a6d6155badebd042f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a> (int size)</td></tr>
+<tr class="memdesc:a3e7589997fdd734a6d6155badebd042f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> having the given minimum size.  <a href="#a3e7589997fdd734a6d6155badebd042f">More...</a><br /></td></tr>
+<tr class="separator:a3e7589997fdd734a6d6155badebd042f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:a7015e5939617ab7e55477ba0a4f85bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>.  <a href="#a7015e5939617ab7e55477ba0a4f85bdb">More...</a><br /></td></tr>
+<tr class="separator:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>.  <a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">More...</a><br /></td></tr>
+<tr class="separator:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad90069a41689cf319f46af44bb113579"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool, int value)</td></tr>
+<tr class="memdesc:ad90069a41689cf319f46af44bb113579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>.  <a href="#ad90069a41689cf319f46af44bb113579">More...</a><br /></td></tr>
+<tr class="separator:ad90069a41689cf319f46af44bb113579"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a3e7589997fdd734a6d6155badebd042f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e7589997fdd734a6d6155badebd042f">&#9670;&nbsp;</a></span>guac_pool_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__pool.html">guac_pool</a>* guac_pool_alloc </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> having the given minimum size. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">size</td><td>The minimum number of integers which must have been returned by guac_pool_next_int before freed integers (previously used integers) are allowed to be returned. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A new, empty <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>, having the given minimum size. </dd></dl>
+
+</div>
+</div>
+<a id="a7015e5939617ab7e55477ba0a4f85bdb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7015e5939617ab7e55477ba0a4f85bdb">&#9670;&nbsp;</a></span>guac_pool_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ad90069a41689cf319f46af44bb113579"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad90069a41689cf319f46af44bb113579">&#9670;&nbsp;</a></span>guac_pool_free_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>. </p>
+<p>The integer given will be available for future calls to guac_pool_next_int. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> to free the given integer into.</td></tr>
+    <tr><td class="paramname">value</td><td>The integer which should be returned to the given pool, such that it can be received by a future call to guac_pool_next_int. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="abe3c79e0fec121e3d1b1d3ce37aa45f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">&#9670;&nbsp;</a></span>guac_pool_next_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_pool_next_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a>. </p>
+<p>All integers returned are non-negative, and are returned in sequences, starting from 0. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers.">guac_pool</a> to retrieve an integer from.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available integer, which may be either an integer not yet returned by a call to guac_pool_next_int, or an integer which was previously returned, but has since been freed. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/pool_8h_source.html b/doc/1.3.0/libguac/pool_8h_source.html
new file mode 100644
index 0000000..9eb40fd
--- /dev/null
+++ b/doc/1.3.0/libguac/pool_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__pool.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">   41</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">   46</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> __next_value;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __head;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __tail;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    pthread_mutex_t __lock;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__pool__int.html">   71</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">   76</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __next;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="structguac__pool.html">guac_pool</a>* <a class="code" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a>(<span class="keywordtype">int</span> size);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="keywordtype">int</span> <a class="code" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="ttc" id="pool_8h_html_abe3c79e0fec121e3d1b1d3ce37aa45f4"><div class="ttname"><a href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a></div><div class="ttdeci">int guac_pool_next_int(guac_pool *pool)</div><div class="ttdoc">Returns the next available integer from the given guac_pool.</div></div>
+<div class="ttc" id="pool_8h_html_a3e7589997fdd734a6d6155badebd042f"><div class="ttname"><a href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a></div><div class="ttdeci">guac_pool * guac_pool_alloc(int size)</div><div class="ttdoc">Allocates a new guac_pool having the given minimum size.</div></div>
+<div class="ttc" id="structguac__pool_html_a71ed274c2481dbcd5e06bf7d8d74d71e"><div class="ttname"><a href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool::min_size</a></div><div class="ttdeci">int min_size</div><div class="ttdoc">The minimum number of integers which must have been returned by guac_pool_next_int before previously-...</div><div class="ttdef"><b>Definition:</b> pool.h:41</div></div>
+<div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="pool_8h_html_a7015e5939617ab7e55477ba0a4f85bdb"><div class="ttname"><a href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a></div><div class="ttdeci">void guac_pool_free(guac_pool *pool)</div><div class="ttdoc">Frees the given guac_pool.</div></div>
+<div class="ttc" id="structguac__pool_html_ac22871d5c476ca9a6dd25a2446fa0fd3"><div class="ttname"><a href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">The number of integers currently in use.</div><div class="ttdef"><b>Definition:</b> pool.h:46</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers.</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="pool_8h_html_ad90069a41689cf319f46af44bb113579"><div class="ttname"><a href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a></div><div class="ttdeci">void guac_pool_free_int(guac_pool *pool, int value)</div><div class="ttdoc">Frees the given integer back into the given guac_pool.</div></div>
+<div class="ttc" id="structguac__pool__int_html_af76ff5f21c6e0f69d95cdd1385ea24a4"><div class="ttname"><a href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int::value</a></div><div class="ttdeci">int value</div><div class="ttdoc">The integer value of this pool entry.</div><div class="ttdef"><b>Definition:</b> pool.h:76</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol-constants_8h.html b/doc/1.3.0/libguac/protocol-constants_8h.html
new file mode 100644
index 0000000..19982ab
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol-constants_8h.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ab1706e67b56808564438ef853a8d2821"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">GUACAMOLE_PROTOCOL_VERSION</a>&#160;&#160;&#160;&quot;VERSION_1_3_0&quot;</td></tr>
+<tr class="memdesc:ab1706e67b56808564438ef853a8d2821"><td class="mdescLeft">&#160;</td><td class="mdescRight">This defines the overall protocol version that this build of libguac supports.  <a href="#ab1706e67b56808564438ef853a8d2821">More...</a><br /></td></tr>
+<tr class="separator:ab1706e67b56808564438ef853a8d2821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5dd5c766aeebead268d0daa6c8c2166"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a>&#160;&#160;&#160;6048</td></tr>
+<tr class="memdesc:af5dd5c766aeebead268d0daa6c8c2166"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size.  <a href="#af5dd5c766aeebead268d0daa6c8c2166">More...</a><br /></td></tr>
+<tr class="separator:af5dd5c766aeebead268d0daa6c8c2166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af5dd5c766aeebead268d0daa6c8c2166"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5dd5c766aeebead268d0daa6c8c2166">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_BLOB_MAX_LENGTH</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH&#160;&#160;&#160;6048</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744" title="The maximum number of characters per instruction.">GUAC_INSTRUCTION_MAX_LENGTH</a> </dd></dl>
+
+</div>
+</div>
+<a id="ab1706e67b56808564438ef853a8d2821"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1706e67b56808564438ef853a8d2821">&#9670;&nbsp;</a></span>GUACAMOLE_PROTOCOL_VERSION</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUACAMOLE_PROTOCOL_VERSION&#160;&#160;&#160;&quot;VERSION_1_3_0&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This defines the overall protocol version that this build of libguac supports. </p>
+<p>The protocol version is used to provide compatibility between potentially different versions of Guacamole server and clients. The version number is a MAJOR_MINOR_PATCH version that matches the versioning used throughout the components of the Guacamole project. This version will not necessarily increment with the other components, unless additional functionality is introduced that affects compatibility.</p>
+<p>This version is passed by the __guac_protocol_send_args() function from the server to the client during the client/server handshake. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol-constants_8h_source.html b/doc/1.3.0/libguac/protocol-constants_8h_source.html
new file mode 100644
index 0000000..6285df3
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">   41</a></span>&#160;<span class="preprocessor">#define GUACAMOLE_PROTOCOL_VERSION &quot;VERSION_1_3_0&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">   50</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH 6048</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol-types_8h.html b/doc/1.3.0/libguac/protocol-types_8h.html
new file mode 100644
index 0000000..a6f51c4
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol-types_8h.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> { <br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D
+<br />
+ }</td></tr>
+<tr class="memdesc:af946f7f843fa5935dbeeb08f85dec9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of all possible status codes returned by protocol operations.  <a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">More...</a><br /></td></tr>
+<tr class="separator:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93612063886db58071d02b5393abf186"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> { <br />
+&#160;&#160;<b>GUAC_COMP_ROUT</b> = 0x2, 
+<b>GUAC_COMP_ATOP</b> = 0x6, 
+<b>GUAC_COMP_XOR</b> = 0xA, 
+<b>GUAC_COMP_ROVER</b> = 0xB, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OVER</b> = 0xE, 
+<b>GUAC_COMP_PLUS</b> = 0xF, 
+<b>GUAC_COMP_RIN</b> = 0x1, 
+<b>GUAC_COMP_IN</b> = 0x4, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OUT</b> = 0x8, 
+<b>GUAC_COMP_RATOP</b> = 0x9, 
+<b>GUAC_COMP_SRC</b> = 0xC
+<br />
+ }</td></tr>
+<tr class="memdesc:a93612063886db58071d02b5393abf186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Composite modes used by Guacamole draw instructions.  <a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">More...</a><br /></td></tr>
+<tr class="separator:a93612063886db58071d02b5393abf186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> { <br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_BLACK</b> = 0x0, 
+<b>GUAC_TRANSFER_BINARY_WHITE</b> = 0xF, 
+<b>GUAC_TRANSFER_BINARY_SRC</b> = 0x3, 
+<b>GUAC_TRANSFER_BINARY_DEST</b> = 0x5, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC</b> = 0xC, 
+<b>GUAC_TRANSFER_BINARY_NDEST</b> = 0xA, 
+<b>GUAC_TRANSFER_BINARY_AND</b> = 0x1, 
+<b>GUAC_TRANSFER_BINARY_NAND</b> = 0xE, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_OR</b> = 0x7, 
+<b>GUAC_TRANSFER_BINARY_NOR</b> = 0x8, 
+<b>GUAC_TRANSFER_BINARY_XOR</b> = 0x6, 
+<b>GUAC_TRANSFER_BINARY_XNOR</b> = 0x9, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC_AND</b> = 0x4, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NAND</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NSRC_OR</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NOR</b> = 0x2, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NDEST_AND</b> = 0x2, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NAND</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NDEST_OR</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NOR</b> = 0x4
+<br />
+ }</td></tr>
+<tr class="memdesc:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default transfer functions.  <a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">More...</a><br /></td></tr>
+<tr class="separator:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memItemLeft" align="right" valign="top"><a id="a4a0205f8ee2e29e1a4d78da74ab58efc"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> { <b>GUAC_LINE_CAP_BUTT</b> = 0x0, 
+<b>GUAC_LINE_CAP_ROUND</b> = 0x1, 
+<b>GUAC_LINE_CAP_SQUARE</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line cap styles. <br /></td></tr>
+<tr class="separator:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6333200b3ff1634e0cb1826b271438b1"><td class="memItemLeft" align="right" valign="top"><a id="a6333200b3ff1634e0cb1826b271438b1"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> { <b>GUAC_LINE_JOIN_BEVEL</b> = 0x0, 
+<b>GUAC_LINE_JOIN_MITER</b> = 0x1, 
+<b>GUAC_LINE_JOIN_ROUND</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a6333200b3ff1634e0cb1826b271438b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line join styles. <br /></td></tr>
+<tr class="separator:a6333200b3ff1634e0cb1826b271438b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7c1d15bae38b970886002bb9811ef8b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> { <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">GUAC_PROTOCOL_VERSION_UNKNOWN</a> = 0x000000, 
+<a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">GUAC_PROTOCOL_VERSION_1_0_0</a> = 0x010000, 
+<a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">GUAC_PROTOCOL_VERSION_1_1_0</a> = 0x010100, 
+<a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">GUAC_PROTOCOL_VERSION_1_3_0</a> = 0x010300
+ }</td></tr>
+<tr class="memdesc:ac7c1d15bae38b970886002bb9811ef8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The set of protocol versions known to guacd to handle negotiation or feature support between differing versions of Guacamole clients and guacd.  <a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">More...</a><br /></td></tr>
+<tr class="separator:ac7c1d15bae38b970886002bb9811ef8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a93612063886db58071d02b5393abf186"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93612063886db58071d02b5393abf186">&#9670;&nbsp;</a></span>guac_composite_mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Composite modes used by Guacamole draw instructions. </p>
+<p>Each composite mode maps to a unique channel mask integer. </p>
+
+</div>
+</div>
+<a id="af946f7f843fa5935dbeeb08f85dec9e2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af946f7f843fa5935dbeeb08f85dec9e2">&#9670;&nbsp;</a></span>guac_protocol_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set of all possible status codes returned by protocol operations. </p>
+<p>These codes relate to Guacamole server/client communication, and not to internal communication of errors within libguac and linked software.</p>
+<p>In general: </p><pre class="fragment">0x0000 - 0x00FF: Successful operations.
+0x0100 - 0x01FF: Operations that failed due to implementation status.
+0x0200 - 0x02FF: Operations that failed due to remote state/environment.
+0x0300 - 0x03FF: Operations that failed due to user/client action.
+</pre><p>There is a general correspondence of these status codes with HTTP response codes. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"></a>GUAC_PROTOCOL_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>The operation succeeded. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"></a>GUAC_PROTOCOL_STATUS_UNSUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is unsupported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"></a>GUAC_PROTOCOL_STATUS_SERVER_ERROR&#160;</td><td class="fielddoc"><p>The operation could not be performed due to an internal failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"></a>GUAC_PROTOCOL_STATUS_SERVER_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed due as the server is busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not responding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR&#160;</td><td class="fielddoc"><p>The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream server. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"></a>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource does not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is now closed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server does not appear to exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not available to service the request. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"></a>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it conflicted with another session. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"></a>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it appeared to be inactive. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"></a>GUAC_PROTOCOL_STATUS_SESSION_CLOSED&#160;</td><td class="fielddoc"><p>The session within the upstream server has been forcibly terminated. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST&#160;</td><td class="fielddoc"><p>The operation could not be performed because bad parameters were given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"></a>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in, for example). </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"></a>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, and this permission will not be granted even if the user is authorized. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"></a>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT&#160;</td><td class="fielddoc"><p>The client took too long to respond. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"></a>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN&#160;</td><td class="fielddoc"><p>The client sent too much data. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE&#160;</td><td class="fielddoc"><p>The client sent data of an unsupported or unexpected type. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"></a>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because the current client is already using too many resources. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="ac7c1d15bae38b970886002bb9811ef8b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7c1d15bae38b970886002bb9811ef8b">&#9670;&nbsp;</a></span>guac_protocol_version</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The set of protocol versions known to guacd to handle negotiation or feature support between differing versions of Guacamole clients and guacd. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052"></a>GUAC_PROTOCOL_VERSION_UNKNOWN&#160;</td><td class="fielddoc"><p>An unknown version of the Guacamole protocol. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe"></a>GUAC_PROTOCOL_VERSION_1_0_0&#160;</td><td class="fielddoc"><p>Original protocol version 1.0.0, which lacks support for negotiating parameters and protocol version, and requires that parameters in the client/server handshake be delivered in order. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f"></a>GUAC_PROTOCOL_VERSION_1_1_0&#160;</td><td class="fielddoc"><p>Protocol version 1.1.0, which includes support for parameter and version negotiation and for sending timezone information from the client to the server. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835"></a>GUAC_PROTOCOL_VERSION_1_3_0&#160;</td><td class="fielddoc"><p>Protocol version 1.3.0, which supports the "required" instruction, allowing connections in guacd to request information from the client and await a response. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a9c85e3f22f5dea8b2f38de6b4f75b1ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c85e3f22f5dea8b2f38de6b4f75b1ff">&#9670;&nbsp;</a></span>guac_transfer_function</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Default transfer functions. </p>
+<p>There is no current facility in the Guacamole protocol to define custom transfer functions. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol-types_8h_source.html b/doc/1.3.0/libguac/protocol-types_8h_source.html
new file mode 100644
index 0000000..d856ada
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol-types_8h_source.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> {</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">   49</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000,</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">   54</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">   59</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">   64</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">   70</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">   76</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">   82</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">   88</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">   94</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">  100</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207,</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">  106</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">  112</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">  118</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A,</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">  123</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B,</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">  129</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">  135</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">  141</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">  146</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">  151</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">  156</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">  162</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;} <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">  170</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">     * A: Source where destination transparent = S n D&#39;</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">     * B: Source where destination opaque      = S n D</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">     * C: Destination where source transparent = D n S&#39;</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">     * D: Destination where source opaque      = D n S</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                           <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    GUAC_COMP_ROUT  = 0x2, <span class="comment">/* 0010 - Clears destination where source opaque  */</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    GUAC_COMP_ATOP  = 0x6, <span class="comment">/* 0110 - Fill where destination opaque only      */</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    GUAC_COMP_XOR   = 0xA, <span class="comment">/* 1010 - XOR                                     */</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    GUAC_COMP_ROVER = 0xB, <span class="comment">/* 1011 - Fill where destination transparent only */</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    GUAC_COMP_OVER  = 0xE, <span class="comment">/* 1110 - Draw normally                           */</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    GUAC_COMP_PLUS  = 0xF, <span class="comment">/* 1111 - Add                                     */</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="comment">/* Unimplemented in client: */</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0000 - Clear          */</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0011 - No operation   */</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0101 - Additive IN    */</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0111 - Additive ATOP  */</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       1101 - Additive RATOP */</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">/* Buggy in webkit browsers, as they keep channel C on in all cases: */</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    GUAC_COMP_RIN   = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    GUAC_COMP_IN    = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    GUAC_COMP_OUT   = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    GUAC_COMP_RATOP = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    GUAC_COMP_SRC   = 0xC  <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="comment">/* Bitwise composite operations (binary) */</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">     * A: S&#39; &amp; D&#39;</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">     * B: S&#39; &amp; D</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">     * C: S  &amp; D&#39;</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">     * D: S  &amp; D</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;} <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">  219</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="comment">/* Constant functions */</span>               <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    GUAC_TRANSFER_BINARY_BLACK      = 0x0, <span class="comment">/* 0000 */</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    GUAC_TRANSFER_BINARY_WHITE      = 0xF, <span class="comment">/* 1111 */</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="comment">/* Copy functions */</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    GUAC_TRANSFER_BINARY_SRC        = 0x3, <span class="comment">/* 0011 */</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    GUAC_TRANSFER_BINARY_DEST       = 0x5, <span class="comment">/* 0101 */</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    GUAC_TRANSFER_BINARY_NSRC       = 0xC, <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    GUAC_TRANSFER_BINARY_NDEST      = 0xA, <span class="comment">/* 1010 */</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="comment">/* AND / NAND */</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    GUAC_TRANSFER_BINARY_AND        = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    GUAC_TRANSFER_BINARY_NAND       = 0xE, <span class="comment">/* 1110 */</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">/* OR / NOR */</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    GUAC_TRANSFER_BINARY_OR         = 0x7, <span class="comment">/* 0111 */</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    GUAC_TRANSFER_BINARY_NOR        = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">/* XOR / XNOR */</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    GUAC_TRANSFER_BINARY_XOR        = 0x6, <span class="comment">/* 0110 */</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    GUAC_TRANSFER_BINARY_XNOR       = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">/* AND / NAND with inverted source */</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_AND   = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NAND  = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="comment">/* OR / NOR with inverted source */</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_OR    = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NOR   = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="comment">/* AND / NAND with inverted destination */</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_AND  = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">/* OR / NOR with inverted destination */</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_OR   = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NOR  = 0x4  <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;} <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">  264</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> {</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    GUAC_LINE_CAP_BUTT   = 0x0,</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    GUAC_LINE_CAP_ROUND  = 0x1,</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    GUAC_LINE_CAP_SQUARE = 0x2</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;} <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">  273</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> {</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    GUAC_LINE_JOIN_BEVEL = 0x0,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    GUAC_LINE_JOIN_MITER = 0x1,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    GUAC_LINE_JOIN_ROUND = 0x2</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;} <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">  283</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">  288</a></span>&#160;    <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">GUAC_PROTOCOL_VERSION_UNKNOWN</a> = 0x000000,</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">  295</a></span>&#160;    <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">GUAC_PROTOCOL_VERSION_1_0_0</a> = 0x010000,</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">  302</a></span>&#160;    <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">GUAC_PROTOCOL_VERSION_1_1_0</a> = 0x010100,</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            </div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">  309</a></span>&#160;    <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">GUAC_PROTOCOL_VERSION_1_3_0</a> = 0x010300</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;} <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a>;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a></div><div class="ttdoc">The operation could not be performed due as the server is busy.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:64</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a></div><div class="ttdoc">Permission was denied to perform the operation, and this permission will not be granted even if the u...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:141</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a></div><div class="ttdoc">The session within the upstream server has ended because it conflicted with another session.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:112</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a></div><div class="ttdoc">Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in,...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:135</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a></div><div class="ttdoc">The operation could not be performed because bad parameters were given.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:129</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe">GUAC_PROTOCOL_VERSION_1_0_0</a></div><div class="ttdoc">Original protocol version 1.0.0, which lacks support for negotiating parameters and protocol version,...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:295</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a></div><div class="ttdoc">The operation failed because the current client is already using too many resources.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:162</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a></div><div class="ttdoc">The session within the upstream server has ended because it appeared to be inactive.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:118</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8b"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a></div><div class="ttdeci">guac_protocol_version</div><div class="ttdoc">The set of protocol versions known to guacd to handle negotiation or feature support between differin...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:283</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f">GUAC_PROTOCOL_VERSION_1_1_0</a></div><div class="ttdoc">Protocol version 1.1.0, which includes support for parameter and version negotiation and for sending ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:302</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052">GUAC_PROTOCOL_VERSION_UNKNOWN</a></div><div class="ttdoc">An unknown version of the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:288</div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a></div><div class="ttdoc">The session within the upstream server has been forcibly terminated.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:123</div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a></div><div class="ttdoc">The requested operation is unsupported.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:54</div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a></div><div class="ttdoc">The client sent too much data.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:151</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not available to service the requ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:106</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a></div><div class="ttdoc">The client took too long to respond.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:146</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a></div><div class="ttdoc">The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream serv...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:76</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a></div><div class="ttdoc">The client sent data of an unsupported or unexpected type.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:156</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed as the requested resource does not exist.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:82</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not responding.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:70</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a></div><div class="ttdoc">The operation could not be performed as the requested resource is now closed.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:94</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the upstream server does not appear to exist.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:100</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a></div><div class="ttdoc">The operation could not be performed due to an internal failure.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:59</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835">GUAC_PROTOCOL_VERSION_1_3_0</a></div><div class="ttdoc">Protocol version 1.3.0, which supports the &quot;required&quot; instruction, allowing connections in guacd to r...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:309</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a></div><div class="ttdoc">The operation could not be performed as the requested resource is already in use.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:88</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a></div><div class="ttdoc">The operation succeeded.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:49</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol_8h.html b/doc/1.3.0/libguac/protocol_8h.html
new file mode 100644
index 0000000..a57a7a2
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol_8h.html
@@ -0,0 +1,3280 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">More...</a><br /></td></tr>
+<tr class="separator:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6047d380b097ebc7d5f35b167e3419e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:a6047d380b097ebc7d5f35b167e3419e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a6047d380b097ebc7d5f35b167e3419e6">More...</a><br /></td></tr>
+<tr class="separator:a6047d380b097ebc7d5f35b167e3419e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">More...</a><br /></td></tr>
+<tr class="separator:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd463766036afda4798edbe788d29524"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:afd463766036afda4798edbe788d29524"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#afd463766036afda4798edbe788d29524">More...</a><br /></td></tr>
+<tr class="separator:afd463766036afda4798edbe788d29524"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:abe696ca7c9841883c5d5bea513d4ee9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#abe696ca7c9841883c5d5bea513d4ee9a">More...</a><br /></td></tr>
+<tr class="separator:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d276595cea8a2d382240d868487f077"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int keysym, int pressed, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a2d276595cea8a2d382240d868487f077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a2d276595cea8a2d382240d868487f077">More...</a><br /></td></tr>
+<tr class="separator:a2d276595cea8a2d382240d868487f077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f832f5b814129d2819f115d84da3cd0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format,...)</td></tr>
+<tr class="memdesc:a6f832f5b814129d2819f115d84da3cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a6f832f5b814129d2819f115d84da3cd0">More...</a><br /></td></tr>
+<tr class="separator:a6f832f5b814129d2819f115d84da3cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a3a783d771e1727ba2a82b2298acf4ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a3a783d771e1727ba2a82b2298acf4ee4">More...</a><br /></td></tr>
+<tr class="separator:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8947056262da2f3263b9851370597622"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, int button_mask, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a8947056262da2f3263b9851370597622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a8947056262da2f3263b9851370597622">More...</a><br /></td></tr>
+<tr class="separator:a8947056262da2f3263b9851370597622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94efa63c9895383e142a3f7ce559300b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int index, const char *data)</td></tr>
+<tr class="memdesc:a94efa63c9895383e142a3f7ce559300b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a94efa63c9895383e142a3f7ce559300b">More...</a><br /></td></tr>
+<tr class="separator:a94efa63c9895383e142a3f7ce559300b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a8fa17d3aa1270b806ac6a386798c6d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a8fa17d3aa1270b806ac6a386798c6d41">More...</a><br /></td></tr>
+<tr class="separator:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *id)</td></tr>
+<tr class="memdesc:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">More...</a><br /></td></tr>
+<tr class="separator:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">More...</a><br /></td></tr>
+<tr class="separator:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8757c7870e648b220dbc76b8292fe5cf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *protocol)</td></tr>
+<tr class="memdesc:a8757c7870e648b220dbc76b8292fe5cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a8757c7870e648b220dbc76b8292fe5cf">More...</a><br /></td></tr>
+<tr class="separator:a8757c7870e648b220dbc76b8292fe5cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:aa11f8798abca85fd2b47b5f9a027fa73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aa11f8798abca85fd2b47b5f9a027fa73">More...</a><br /></td></tr>
+<tr class="separator:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca9fb516e730233c33da297819f7ae7e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aca9fb516e730233c33da297819f7ae7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aca9fb516e730233c33da297819f7ae7e">More...</a><br /></td></tr>
+<tr class="separator:aca9fb516e730233c33da297819f7ae7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3779c2287625af70fb001afbcc739da5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const char *name)</td></tr>
+<tr class="memdesc:a3779c2287625af70fb001afbcc739da5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a3779c2287625af70fb001afbcc739da5">More...</a><br /></td></tr>
+<tr class="separator:a3779c2287625af70fb001afbcc739da5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefa251505e61332e8e1c27ade0478e64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:aefa251505e61332e8e1c27ade0478e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aefa251505e61332e8e1c27ade0478e64">More...</a><br /></td></tr>
+<tr class="separator:aefa251505e61332e8e1c27ade0478e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92edb38a4df2db402a013422cee6b42"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:ab92edb38a4df2db402a013422cee6b42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ab92edb38a4df2db402a013422cee6b42">More...</a><br /></td></tr>
+<tr class="separator:ab92edb38a4df2db402a013422cee6b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a453e1b22d63a9d07ba23b3a6726c2f06">More...</a><br /></td></tr>
+<tr class="separator:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b2c462077b7c51d211f3db09c30292"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a18b2c462077b7c51d211f3db09c30292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a18b2c462077b7c51d211f3db09c30292">More...</a><br /></td></tr>
+<tr class="separator:a18b2c462077b7c51d211f3db09c30292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a block of data to the currently in-progress blob which was already created.  <a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">More...</a><br /></td></tr>
+<tr class="separator:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4b3d3b5741b377a197c02384e4b870e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:ad4b3d3b5741b377a197c02384e4b870e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH.  <a href="#ad4b3d3b5741b377a197c02384e4b870e">More...</a><br /></td></tr>
+<tr class="separator:ad4b3d3b5741b377a197c02384e4b870e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1bb569878a14efecccc0c05757d1cae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:ae1bb569878a14efecccc0c05757d1cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ae1bb569878a14efecccc0c05757d1cae">More...</a><br /></td></tr>
+<tr class="separator:ae1bb569878a14efecccc0c05757d1cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657216f2e63d2d42e8624f96def84bf8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype)</td></tr>
+<tr class="memdesc:a657216f2e63d2d42e8624f96def84bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a657216f2e63d2d42e8624f96def84bf8">More...</a><br /></td></tr>
+<tr class="separator:a657216f2e63d2d42e8624f96def84bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</td></tr>
+<tr class="memdesc:ad74bc43b5f03b79027bf02d873cd77b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ad74bc43b5f03b79027bf02d873cd77b3">More...</a><br /></td></tr>
+<tr class="separator:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:afda3a1a8285e323fca6aef50cb2feb5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#afda3a1a8285e323fca6aef50cb2feb5e">More...</a><br /></td></tr>
+<tr class="separator:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbd1869635b752bbf52998613804df00"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:acbd1869635b752bbf52998613804df00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#acbd1869635b752bbf52998613804df00">More...</a><br /></td></tr>
+<tr class="separator:acbd1869635b752bbf52998613804df00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a3e4e32900594e17c49db6939fc10a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a45a3e4e32900594e17c49db6939fc10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a45a3e4e32900594e17c49db6939fc10a">More...</a><br /></td></tr>
+<tr class="separator:a45a3e4e32900594e17c49db6939fc10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:ad035df3781dc19ba2330b02ef1dd6eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ad035df3781dc19ba2330b02ef1dd6eda">More...</a><br /></td></tr>
+<tr class="separator:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">More...</a><br /></td></tr>
+<tr class="separator:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17da53514189083fa84aa3cc0bf6883a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h)</td></tr>
+<tr class="memdesc:a17da53514189083fa84aa3cc0bf6883a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a17da53514189083fa84aa3cc0bf6883a">More...</a><br /></td></tr>
+<tr class="separator:a17da53514189083fa84aa3cc0bf6883a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</td></tr>
+<tr class="memdesc:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a1b9985b080a339dcd14b95f5e46e8ab5">More...</a><br /></td></tr>
+<tr class="separator:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac205e52801a875bfbef02ae237b6b15"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:aac205e52801a875bfbef02ae237b6b15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aac205e52801a875bfbef02ae237b6b15">More...</a><br /></td></tr>
+<tr class="separator:aac205e52801a875bfbef02ae237b6b15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9271e3b6cc0030b833d18137969a4018"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a9271e3b6cc0030b833d18137969a4018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a9271e3b6cc0030b833d18137969a4018">More...</a><br /></td></tr>
+<tr class="separator:a9271e3b6cc0030b833d18137969a4018"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afac3f57649c20b5e39c484a52d264005"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:afac3f57649c20b5e39c484a52d264005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#afac3f57649c20b5e39c484a52d264005">More...</a><br /></td></tr>
+<tr class="separator:afac3f57649c20b5e39c484a52d264005"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b7d621d534126e26178789800a1a5d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a5b7d621d534126e26178789800a1a5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a5b7d621d534126e26178789800a1a5d5">More...</a><br /></td></tr>
+<tr class="separator:a5b7d621d534126e26178789800a1a5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda8074f65d35795203f392f6688163e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype, int x, int y)</td></tr>
+<tr class="memdesc:afda8074f65d35795203f392f6688163e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#afda8074f65d35795203f392f6688163e">More...</a><br /></td></tr>
+<tr class="separator:afda8074f65d35795203f392f6688163e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab29ab6edd91e954fd686742c92eab6d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:ab29ab6edd91e954fd686742c92eab6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ab29ab6edd91e954fd686742c92eab6d4">More...</a><br /></td></tr>
+<tr class="separator:ab29ab6edd91e954fd686742c92eab6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a9db04720cbb2bc972f48f2e9332f23a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a9db04720cbb2bc972f48f2e9332f23a8">More...</a><br /></td></tr>
+<tr class="separator:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42dc3db797b83accd3418b76648adac5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int width, int height)</td></tr>
+<tr class="memdesc:a42dc3db797b83accd3418b76648adac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a42dc3db797b83accd3418b76648adac5">More...</a><br /></td></tr>
+<tr class="separator:a42dc3db797b83accd3418b76648adac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd34768cdcdf71ad40acc0f02cc77ed1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1">guac_protocol_send_required</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **required)</td></tr>
+<tr class="memdesc:abd34768cdcdf71ad40acc0f02cc77ed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a "required" instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#abd34768cdcdf71ad40acc0f02cc77ed1">More...</a><br /></td></tr>
+<tr class="separator:abd34768cdcdf71ad40acc0f02cc77ed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f6433cc21bc043c57fb7c468428373a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a5f6433cc21bc043c57fb7c468428373a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a5f6433cc21bc043c57fb7c468428373a">More...</a><br /></td></tr>
+<tr class="separator:a5f6433cc21bc043c57fb7c468428373a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60d33439eb4b5a11535a9a77e57c4126"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:a60d33439eb4b5a11535a9a77e57c4126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a60d33439eb4b5a11535a9a77e57c4126">More...</a><br /></td></tr>
+<tr class="separator:a60d33439eb4b5a11535a9a77e57c4126"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecdce272ed4c317c5b7291e42239a1f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:aecdce272ed4c317c5b7291e42239a1f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aecdce272ed4c317c5b7291e42239a1f9">More...</a><br /></td></tr>
+<tr class="separator:aecdce272ed4c317c5b7291e42239a1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17058795c93be51c82a9df95eca8e62b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a17058795c93be51c82a9df95eca8e62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a17058795c93be51c82a9df95eca8e62b">More...</a><br /></td></tr>
+<tr class="separator:a17058795c93be51c82a9df95eca8e62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b2456a017f772a39be6d33a5da9149d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a7b2456a017f772a39be6d33a5da9149d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a7b2456a017f772a39be6d33a5da9149d">More...</a><br /></td></tr>
+<tr class="separator:a7b2456a017f772a39be6d33a5da9149d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">More...</a><br /></td></tr>
+<tr class="separator:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7409451b0f2b18dc870d347545c9afd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *parent, int x, int y, int z)</td></tr>
+<tr class="memdesc:ac7409451b0f2b18dc870d347545c9afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#ac7409451b0f2b18dc870d347545c9afd">More...</a><br /></td></tr>
+<tr class="separator:ac7409451b0f2b18dc870d347545c9afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int a)</td></tr>
+<tr class="memdesc:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">More...</a><br /></td></tr>
+<tr class="separator:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affc4cf09c3337bd860439da99bdfef98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int w, int h)</td></tr>
+<tr class="memdesc:affc4cf09c3337bd860439da99bdfef98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#affc4cf09c3337bd860439da99bdfef98">More...</a><br /></td></tr>
+<tr class="separator:affc4cf09c3337bd860439da99bdfef98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#aaddd6d7c6ab1289efb3dd38c39bde531">More...</a><br /></td></tr>
+<tr class="separator:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a7e8a055e57afbcd9c9b520767d9a1c64">More...</a><br /></td></tr>
+<tr class="separator:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *name)</td></tr>
+<tr class="memdesc:a481fbaab3b8e72505df752ac2f6cc59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection.  <a href="#a481fbaab3b8e72505df752ac2f6cc59e">More...</a><br /></td></tr>
+<tr class="separator:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a> (char *base64)</td></tr>
+<tr class="memdesc:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decodes the given base64-encoded string in-place.  <a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">More...</a><br /></td></tr>
+<tr class="separator:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3304f28ac07fa60ee7358a54e3f30396"><td class="memItemLeft" align="right" valign="top"><a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396">guac_protocol_string_to_version</a> (const char *version_string)</td></tr>
+<tr class="memdesc:a3304f28ac07fa60ee7358a54e3f30396"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a string representation of a protocol version, return the enum value of that protocol version, or GUAC_PROTOCOL_VERSION_UNKNOWN if the value is not a known version.  <a href="#a3304f28ac07fa60ee7358a54e3f30396">More...</a><br /></td></tr>
+<tr class="separator:a3304f28ac07fa60ee7358a54e3f30396"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af97ab710efe6080977b0450548e6af0b"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#af97ab710efe6080977b0450548e6af0b">guac_protocol_version_to_string</a> (<a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> version)</td></tr>
+<tr class="memdesc:af97ab710efe6080977b0450548e6af0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the enum value of the protocol version, return a pointer to the string representation of the version, or NULL if the version is unknown.  <a href="#af97ab710efe6080977b0450548e6af0b">More...</a><br /></td></tr>
+<tr class="separator:af97ab710efe6080977b0450548e6af0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> objects. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0ad7d9b8b205d6fc368eff2d9e8e40ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">&#9670;&nbsp;</a></span>guac_protocol_decode_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_decode_base64 </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>base64</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Decodes the given base64-encoded string in-place. </p>
+<p>The base64 string must be NULL-terminated.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">base64</td><td>The base64-encoded string to decode. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes resulting from the decode operation. </dd></dl>
+
+</div>
+</div>
+<a id="ab02be6102d9f4aaa2bbb0b249f09d63e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">&#9670;&nbsp;</a></span>guac_protocol_send_ack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ack </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> associated with the operation this ack is acknowledging. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error or status update. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error or status. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad74bc43b5f03b79027bf02d873cd77b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad74bc43b5f03b79027bf02d873cd77b3">&#9670;&nbsp;</a></span>guac_protocol_send_arc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_arc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>startAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>endAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>negative</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">radius</td><td>The radius of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">startAngle</td><td>The starting angle, in radians. </td></tr>
+    <tr><td class="paramname">endAngle</td><td>The ending angle, in radians. </td></tr>
+    <tr><td class="paramname">negative</td><td>Zero if the arc should be drawn in order of increasing angle, non-zero otherwise. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6047d380b097ebc7d5f35b167e3419e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6047d380b097ebc7d5f35b167e3419e6">&#9670;&nbsp;</a></span>guac_protocol_send_args()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_args </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument names (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aaddd6d7c6ab1289efb3dd38c39bde531"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaddd6d7c6ab1289efb3dd38c39bde531">&#9670;&nbsp;</a></span>guac_protocol_send_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter whose current value is being sent.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab92edb38a4df2db402a013422cee6b42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab92edb38a4df2db402a013422cee6b42">&#9670;&nbsp;</a></span>guac_protocol_send_audio()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_audio </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use when sending the audio instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future audio data.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the audio data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a798d57ec3f3cdfa0d9bb4906f02d5127"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">&#9670;&nbsp;</a></span>guac_protocol_send_blob()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blob </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a block of data to the currently in-progress blob which was already created. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">data</td><td>The file data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of file data that must be written. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad4b3d3b5741b377a197c02384e4b870e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4b3d3b5741b377a197c02384e4b870e">&#9670;&nbsp;</a></span>guac_protocol_send_blobs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blobs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH. </p>
+<p>If the size of data provided is zero, no blob instructions are sent.</p>
+<p>If an error occurs sending any blob instruction, a non-zero value is returned, guac_error is set appropriately, and no further blobs are sent.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166" title="The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction...">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use to send the blob instructions.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to associate with each blob sent.</td></tr>
+    <tr><td class="paramname">data</td><td>The data which should be sent using the required number of blob instructions.</td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of data that must be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aca9fb516e730233c33da297819f7ae7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca9fb516e730233c33da297819f7ae7e">&#9670;&nbsp;</a></span>guac_protocol_send_body()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_body </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to associated with the stream being used.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream whose body is being sent, as requested by a "get" instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda3a1a8285e323fca6aef50cb2feb5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda3a1a8285e323fca6aef50cb2feb5e">&#9670;&nbsp;</a></span>guac_protocol_send_cfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="acbd1869635b752bbf52998613804df00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acbd1869635b752bbf52998613804df00">&#9670;&nbsp;</a></span>guac_protocol_send_clip()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clip </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7e8a055e57afbcd9c9b520767d9a1c64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e8a055e57afbcd9c9b520767d9a1c64">&#9670;&nbsp;</a></span>guac_protocol_send_clipboard()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clipboard </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the clipboard data being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a45a3e4e32900594e17c49db6939fc10a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45a3e4e32900594e17c49db6939fc10a">&#9670;&nbsp;</a></span>guac_protocol_send_close()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_close </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac8dea4393e2ec69d5d27fd0759a70fcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">&#9670;&nbsp;</a></span>guac_protocol_send_connect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_connect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument values (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad035df3781dc19ba2330b02ef1dd6eda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad035df3781dc19ba2330b02ef1dd6eda">&#9670;&nbsp;</a></span>guac_protocol_send_copy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac6f28f1beb2fa07e1b3f6fa774789fd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">&#9670;&nbsp;</a></span>guac_protocol_send_cstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17da53514189083fa84aa3cc0bf6883a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17da53514189083fa84aa3cc0bf6883a">&#9670;&nbsp;</a></span>guac_protocol_send_cursor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cursor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a1b9985b080a339dcd14b95f5e46e8ab5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b9985b080a339dcd14b95f5e46e8ab5">&#9670;&nbsp;</a></span>guac_protocol_send_curve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_curve </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cp1x</td><td>The X coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp1y</td><td>The Y coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp2x</td><td>The X coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">cp2y</td><td>The Y coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the curve. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the curve. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afd463766036afda4798edbe788d29524"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd463766036afda4798edbe788d29524">&#9670;&nbsp;</a></span>guac_protocol_send_disconnect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_disconnect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7b2456a017f772a39be6d33a5da9149d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b2456a017f772a39be6d33a5da9149d">&#9670;&nbsp;</a></span>guac_protocol_send_dispose()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_dispose </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to dispose. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6b4cdd9133dbdca8cfc1e78a0d6bdf13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">&#9670;&nbsp;</a></span>guac_protocol_send_distort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_distort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to distort with the given transform matrix. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ae1bb569878a14efecccc0c05757d1cae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1bb569878a14efecccc0c05757d1cae">&#9670;&nbsp;</a></span>guac_protocol_send_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="abe696ca7c9841883c5d5bea513d4ee9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe696ca7c9841883c5d5bea513d4ee9a">&#9670;&nbsp;</a></span>guac_protocol_send_error()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_error </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a453e1b22d63a9d07ba23b3a6726c2f06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a453e1b22d63a9d07ba23b3a6726c2f06">&#9670;&nbsp;</a></span>guac_protocol_send_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_file </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the file being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3779c2287625af70fb001afbcc739da5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3779c2287625af70fb001afbcc739da5">&#9670;&nbsp;</a></span>guac_protocol_send_filesystem()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_filesystem </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object representing the filesystem being exposed.</td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the filesystem being exposed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aac205e52801a875bfbef02ae237b6b15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac205e52801a875bfbef02ae237b6b15">&#9670;&nbsp;</a></span>guac_protocol_send_identity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_identity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda8074f65d35795203f392f6688163e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda8074f65d35795203f392f6688163e">&#9670;&nbsp;</a></span>guac_protocol_send_img()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_img </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use when sending the img instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream over which the image data will be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when drawing the image over the destination layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the image data being sent.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was successfully sent, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a2d276595cea8a2d382240d868487f077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d276595cea8a2d382240d868487f077">&#9670;&nbsp;</a></span>guac_protocol_send_key()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_key </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>keysym</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>pressed</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this key event was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9271e3b6cc0030b833d18137969a4018"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9271e3b6cc0030b833d18137969a4018">&#9670;&nbsp;</a></span>guac_protocol_send_lfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afac3f57649c20b5e39c484a52d264005"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afac3f57649c20b5e39c484a52d264005">&#9670;&nbsp;</a></span>guac_protocol_send_line()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_line </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the line. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the line. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6f832f5b814129d2819f115d84da3cd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f832f5b814129d2819f115d84da3cd0">&#9670;&nbsp;</a></span>guac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5b7d621d534126e26178789800a1a5d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b7d621d534126e26178789800a1a5d5">&#9670;&nbsp;</a></span>guac_protocol_send_lstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8947056262da2f3263b9851370597622"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8947056262da2f3263b9851370597622">&#9670;&nbsp;</a></span>guac_protocol_send_mouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_mouse </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>button_mask</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down.">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down.">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down.">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up.">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down.">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this mouse position was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac7409451b0f2b18dc870d347545c9afd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7409451b0f2b18dc870d347545c9afd">&#9670;&nbsp;</a></span>guac_protocol_send_move()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_move </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>z</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to move. </td></tr>
+    <tr><td class="paramname">parent</td><td>The parent layer the specified layer will be positioned relative to. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the layer. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the layer. </td></tr>
+    <tr><td class="paramname">z</td><td>The Z index of the layer, relative to other layers in its parent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a481fbaab3b8e72505df752ac2f6cc59e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a481fbaab3b8e72505df752ac2f6cc59e">&#9670;&nbsp;</a></span>guac_protocol_send_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_name </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">name</td><td>The name to send within the name instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a94efa63c9895383e142a3f7ce559300b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94efa63c9895383e142a3f7ce559300b">&#9670;&nbsp;</a></span>guac_protocol_send_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">index</td><td>The integer index of the stram to send the protocol data over. </td></tr>
+    <tr><td class="paramname">data</td><td>A string containing protocol data, which must be UTF-8 encoded and null-terminated. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8fa17d3aa1270b806ac6a386798c6d41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8fa17d3aa1270b806ac6a386798c6d41">&#9670;&nbsp;</a></span>guac_protocol_send_nop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a18b2c462077b7c51d211f3db09c30292"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a18b2c462077b7c51d211f3db09c30292">&#9670;&nbsp;</a></span>guac_protocol_send_pipe()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pipe </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>An arbitrary name uniquely identifying this pipe. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab29ab6edd91e954fd686742c92eab6d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab29ab6edd91e954fd686742c92eab6d4">&#9670;&nbsp;</a></span>guac_protocol_send_pop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9db04720cbb2bc972f48f2e9332f23a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9db04720cbb2bc972f48f2e9332f23a8">&#9670;&nbsp;</a></span>guac_protocol_send_push()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_push </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a102b7719fbd9c8ea0eb2dc4f51e26359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">&#9670;&nbsp;</a></span>guac_protocol_send_ready()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ready </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>id</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">id</td><td>The connection ID of the connection that is ready. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a42dc3db797b83accd3418b76648adac5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42dc3db797b83accd3418b76648adac5">&#9670;&nbsp;</a></span>guac_protocol_send_rect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_rect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>height</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">width</td><td>The width of the rectangle. </td></tr>
+    <tr><td class="paramname">height</td><td>The height of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="abd34768cdcdf71ad40acc0f02cc77ed1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abd34768cdcdf71ad40acc0f02cc77ed1">&#9670;&nbsp;</a></span>guac_protocol_send_required()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_required </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>required</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a "required" instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>This instruction indicates to the client that one or more additional parameters are needed to continue the connection.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to which to send the instruction.</td></tr>
+    <tr><td class="paramname">required</td><td>A NULL-terminated array of required parameters.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5f6433cc21bc043c57fb7c468428373a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f6433cc21bc043c57fb7c468428373a">&#9670;&nbsp;</a></span>guac_protocol_send_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8757c7870e648b220dbc76b8292fe5cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8757c7870e648b220dbc76b8292fe5cf">&#9670;&nbsp;</a></span>guac_protocol_send_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The protocol to request. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa3750a6c0fbf190fb71a6ab0955cb31a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">&#9670;&nbsp;</a></span>guac_protocol_send_set()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_set </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the parameter of. </td></tr>
+    <tr><td class="paramname">name</td><td>The name of the parameter to set. </td></tr>
+    <tr><td class="paramname">value</td><td>The value to set the parameter to. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a0e72a4122a3a7c45fa21e0d5607cc4d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">&#9670;&nbsp;</a></span>guac_protocol_send_shade()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_shade </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to shade. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha value of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="affc4cf09c3337bd860439da99bdfef98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affc4cf09c3337bd860439da99bdfef98">&#9670;&nbsp;</a></span>guac_protocol_send_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_size </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to resize. </td></tr>
+    <tr><td class="paramname">w</td><td>The new width of the layer. </td></tr>
+    <tr><td class="paramname">h</td><td>The new height of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a60d33439eb4b5a11535a9a77e57c4126"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a60d33439eb4b5a11535a9a77e57c4126">&#9670;&nbsp;</a></span>guac_protocol_send_start()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_start </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the first point of the subpath. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the first point of the subpath. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa11f8798abca85fd2b47b5f9a027fa73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa11f8798abca85fd2b47b5f9a027fa73">&#9670;&nbsp;</a></span>guac_protocol_send_sync()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_sync </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>The current time in milliseconds should be passed in as the timestamp.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">timestamp</td><td>The current timestamp (in milliseconds). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aecdce272ed4c317c5b7291e42239a1f9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aecdce272ed4c317c5b7291e42239a1f9">&#9670;&nbsp;</a></span>guac_protocol_send_transfer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transfer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>&#160;</td>
+          <td class="paramname"><em>fn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">fn</td><td>The transfer function to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17058795c93be51c82a9df95eca8e62b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17058795c93be51c82a9df95eca8e62b">&#9670;&nbsp;</a></span>guac_protocol_send_transform()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transform </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to apply the given transform matrix to. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aefa251505e61332e8e1c27ade0478e64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aefa251505e61332e8e1c27ade0478e64">&#9670;&nbsp;</a></span>guac_protocol_send_undefine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_undefine </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object being undefined.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a657216f2e63d2d42e8624f96def84bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a657216f2e63d2d42e8624f96def84bf8">&#9670;&nbsp;</a></span>guac_protocol_send_video()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_video </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use when sending the video instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future video data.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer on which the streamed video should be played.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the video data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3304f28ac07fa60ee7358a54e3f30396"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3304f28ac07fa60ee7358a54e3f30396">&#9670;&nbsp;</a></span>guac_protocol_string_to_version()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> guac_protocol_string_to_version </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>version_string</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a string representation of a protocol version, return the enum value of that protocol version, or GUAC_PROTOCOL_VERSION_UNKNOWN if the value is not a known version. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">version_string</td><td>The string representation of the protocol version.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The enum value of the protocol version, or GUAC_PROTOCOL_VERSION_UNKNOWN if the provided version is not known. </dd></dl>
+
+</div>
+</div>
+<a id="af97ab710efe6080977b0450548e6af0b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af97ab710efe6080977b0450548e6af0b">&#9670;&nbsp;</a></span>guac_protocol_version_to_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* guac_protocol_version_to_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a>&#160;</td>
+          <td class="paramname"><em>version</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given the enum value of the protocol version, return a pointer to the string representation of the version, or NULL if the version is unknown. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">version</td><td>The enum value of the protocol version.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the string representation of the protocol version, or NULL if the version is unknown. </dd></dl>
+
+</div>
+</div>
+<a id="a3a783d771e1727ba2a82b2298acf4ee4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a783d771e1727ba2a82b2298acf4ee4">&#9670;&nbsp;</a></span>vguac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int vguac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the format string for printing.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was sent successfully, non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/protocol_8h_source.html b/doc/1.3.0/libguac/protocol_8h_source.html
new file mode 100644
index 0000000..2c90e0e
--- /dev/null
+++ b/doc/1.3.0/libguac/protocol_8h_source.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-constants_8h.html">protocol-constants.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">/* CONTROL INSTRUCTIONS */</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* error,</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        va_list args);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordtype">int</span> button_mask, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> index,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* data);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">id</span>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">/* OBJECT INSTRUCTIONS */</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">/* MEDIA INSTRUCTIONS */</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment">/* DRAWING INSTRUCTIONS */</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> startAngle, <span class="keywordtype">double</span> endAngle,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keywordtype">int</span> negative);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordtype">int</span> cp1x, <span class="keywordtype">int</span> cp1y, <span class="keywordtype">int</span> cp2x, <span class="keywordtype">int</span> cp2y, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1">guac_protocol_send_required</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** required);</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;        <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;</div><div class="line"><a name="l00885"></a><span class="lineno">  885</span>&#160;<span class="comment">/* LAYER INSTRUCTIONS */</span></div><div class="line"><a name="l00886"></a><span class="lineno">  886</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* parent, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z);</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;<span class="comment">/* TEXT INSTRUCTIONS */</span></div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a>(<span class="keywordtype">char</span>* base64);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> <a class="code" href="protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396">guac_protocol_string_to_version</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* version_string);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="protocol_8h.html#af97ab710efe6080977b0450548e6af0b">guac_protocol_version_to_string</a>(<a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> version);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="ttc" id="protocol_8h_html_aa3750a6c0fbf190fb71a6ab0955cb31a"><div class="ttname"><a href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a></div><div class="ttdeci">int guac_protocol_send_set(guac_socket *socket, const guac_layer *layer, const char *name, const char *value)</div><div class="ttdoc">Sends a set instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a6047d380b097ebc7d5f35b167e3419e6"><div class="ttname"><a href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a></div><div class="ttdeci">int guac_protocol_send_args(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends an args instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ae1bb569878a14efecccc0c05757d1cae"><div class="ttname"><a href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a></div><div class="ttdeci">int guac_protocol_send_end(guac_socket *socket, const guac_stream *stream)</div><div class="ttdoc">Sends an end instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ad4b3d3b5741b377a197c02384e4b870e"><div class="ttname"><a href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a></div><div class="ttdeci">int guac_protocol_send_blobs(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Sends a series of blob instructions, splitting the given data across the number of instructions requi...</div></div>
+<div class="ttc" id="protocol_8h_html_a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><div class="ttname"><a href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a></div><div class="ttdeci">int guac_protocol_send_distort(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a distort instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a8757c7870e648b220dbc76b8292fe5cf"><div class="ttname"><a href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a></div><div class="ttdeci">int guac_protocol_send_select(guac_socket *socket, const char *protocol)</div><div class="ttdoc">Sends a select instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a3779c2287625af70fb001afbcc739da5"><div class="ttname"><a href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a></div><div class="ttdeci">int guac_protocol_send_filesystem(guac_socket *socket, const guac_object *object, const char *name)</div><div class="ttdoc">Sends a filesystem instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a5b7d621d534126e26178789800a1a5d5"><div class="ttname"><a href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a></div><div class="ttdeci">int guac_protocol_send_lstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, const guac_layer *srcl)</div><div class="ttdoc">Sends an lstroke instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a7e8a055e57afbcd9c9b520767d9a1c64"><div class="ttname"><a href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a></div><div class="ttdeci">int guac_protocol_send_clipboard(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends a clipboard instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a102b7719fbd9c8ea0eb2dc4f51e26359"><div class="ttname"><a href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a></div><div class="ttdeci">int guac_protocol_send_ready(guac_socket *socket, const char *id)</div><div class="ttdoc">Sends a ready instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="protocol_8h_html_ac6f28f1beb2fa07e1b3f6fa774789fd9"><div class="ttname"><a href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a></div><div class="ttdeci">int guac_protocol_send_cstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cstroke instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a657216f2e63d2d42e8624f96def84bf8"><div class="ttname"><a href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a></div><div class="ttdeci">int guac_protocol_send_video(guac_socket *socket, const guac_stream *stream, const guac_layer *layer, const char *mimetype)</div><div class="ttdoc">Sends a video instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a5f6433cc21bc043c57fb7c468428373a"><div class="ttname"><a href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a></div><div class="ttdeci">int guac_protocol_send_reset(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a reset instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a0ad7d9b8b205d6fc368eff2d9e8e40ec"><div class="ttname"><a href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a></div><div class="ttdeci">int guac_protocol_decode_base64(char *base64)</div><div class="ttdoc">Decodes the given base64-encoded string in-place.</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8b"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a></div><div class="ttdeci">guac_protocol_version</div><div class="ttdoc">The set of protocol versions known to guacd to handle negotiation or feature support between differin...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:283</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="protocol_8h_html_afda8074f65d35795203f392f6688163e"><div class="ttname"><a href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a></div><div class="ttdeci">int guac_protocol_send_img(guac_socket *socket, const guac_stream *stream, guac_composite_mode mode, const guac_layer *layer, const char *mimetype, int x, int y)</div><div class="ttdoc">Sends an img instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects.</div></div>
+<div class="ttc" id="protocol_8h_html_a8fa17d3aa1270b806ac6a386798c6d41"><div class="ttname"><a href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a></div><div class="ttdeci">int guac_protocol_send_nop(guac_socket *socket)</div><div class="ttdoc">Sends a nop instruction (null-operation) over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a481fbaab3b8e72505df752ac2f6cc59e"><div class="ttname"><a href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a></div><div class="ttdeci">int guac_protocol_send_name(guac_socket *socket, const char *name)</div><div class="ttdoc">Sends a name instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aecdce272ed4c317c5b7291e42239a1f9"><div class="ttname"><a href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a></div><div class="ttdeci">int guac_protocol_send_transfer(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_transfer_function fn, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a transfer instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ab92edb38a4df2db402a013422cee6b42"><div class="ttname"><a href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a></div><div class="ttdeci">int guac_protocol_send_audio(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends an audio instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol_8h_html_afd463766036afda4798edbe788d29524"><div class="ttname"><a href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a></div><div class="ttdeci">int guac_protocol_send_disconnect(guac_socket *socket)</div><div class="ttdoc">Sends a disconnect instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-constants_8h_html"><div class="ttname"><a href="protocol-constants_8h.html">protocol-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol.</div></div>
+<div class="ttc" id="protocol_8h_html_ad74bc43b5f03b79027bf02d873cd77b3"><div class="ttname"><a href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a></div><div class="ttdeci">int guac_protocol_send_arc(guac_socket *socket, const guac_layer *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</div><div class="ttdoc">Sends an arc instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a3a783d771e1727ba2a82b2298acf4ee4"><div class="ttname"><a href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a></div><div class="ttdeci">int vguac_protocol_send_log(guac_socket *socket, const char *format, va_list args)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ac7409451b0f2b18dc870d347545c9afd"><div class="ttname"><a href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a></div><div class="ttdeci">int guac_protocol_send_move(guac_socket *socket, const guac_layer *layer, const guac_layer *parent, int x, int y, int z)</div><div class="ttdoc">Sends a move instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a798d57ec3f3cdfa0d9bb4906f02d5127"><div class="ttname"><a href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a></div><div class="ttdeci">int guac_protocol_send_blob(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Writes a block of data to the currently in-progress blob which was already created.</div></div>
+<div class="ttc" id="protocol_8h_html_a42dc3db797b83accd3418b76648adac5"><div class="ttname"><a href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a></div><div class="ttdeci">int guac_protocol_send_rect(guac_socket *socket, const guac_layer *layer, int x, int y, int width, int height)</div><div class="ttdoc">Sends a rect instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a17da53514189083fa84aa3cc0bf6883a"><div class="ttname"><a href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a></div><div class="ttdeci">int guac_protocol_send_cursor(guac_socket *socket, int x, int y, const guac_layer *srcl, int srcx, int srcy, int w, int h)</div><div class="ttdoc">Sends a cursor instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a6f832f5b814129d2819f115d84da3cd0"><div class="ttname"><a href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a></div><div class="ttdeci">int guac_protocol_send_log(guac_socket *socket, const char *format,...)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aac205e52801a875bfbef02ae237b6b15"><div class="ttname"><a href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a></div><div class="ttdeci">int guac_protocol_send_identity(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends an identity instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a1b9985b080a339dcd14b95f5e46e8ab5"><div class="ttname"><a href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a></div><div class="ttdeci">int guac_protocol_send_curve(guac_socket *socket, const guac_layer *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</div><div class="ttdoc">Sends a curve instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a45a3e4e32900594e17c49db6939fc10a"><div class="ttname"><a href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a></div><div class="ttdeci">int guac_protocol_send_close(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a close instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol_8h_html_a7b2456a017f772a39be6d33a5da9149d"><div class="ttname"><a href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a></div><div class="ttdeci">int guac_protocol_send_dispose(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a dispose instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_af97ab710efe6080977b0450548e6af0b"><div class="ttname"><a href="protocol_8h.html#af97ab710efe6080977b0450548e6af0b">guac_protocol_version_to_string</a></div><div class="ttdeci">const char * guac_protocol_version_to_string(guac_protocol_version version)</div><div class="ttdoc">Given the enum value of the protocol version, return a pointer to the string representation of the ve...</div></div>
+<div class="ttc" id="protocol_8h_html_a60d33439eb4b5a11535a9a77e57c4126"><div class="ttname"><a href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a></div><div class="ttdeci">int guac_protocol_send_start(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a start instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aa11f8798abca85fd2b47b5f9a027fa73"><div class="ttname"><a href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a></div><div class="ttdeci">int guac_protocol_send_sync(guac_socket *socket, guac_timestamp timestamp)</div><div class="ttdoc">Sends a sync instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a9271e3b6cc0030b833d18137969a4018"><div class="ttname"><a href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a></div><div class="ttdeci">int guac_protocol_send_lfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, const guac_layer *srcl)</div><div class="ttdoc">Sends an lfill instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol_8h_html_a94efa63c9895383e142a3f7ce559300b"><div class="ttname"><a href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a></div><div class="ttdeci">int guac_protocol_send_nest(guac_socket *socket, int index, const char *data)</div><div class="ttdoc">Sends a nest instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aca9fb516e730233c33da297819f7ae7e"><div class="ttname"><a href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a></div><div class="ttdeci">int guac_protocol_send_body(guac_socket *socket, const guac_object *object, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a body instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_afac3f57649c20b5e39c484a52d264005"><div class="ttname"><a href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a></div><div class="ttdeci">int guac_protocol_send_line(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a line instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol.</div></div>
+<div class="ttc" id="protocol_8h_html_ad035df3781dc19ba2330b02ef1dd6eda"><div class="ttname"><a href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a></div><div class="ttdeci">int guac_protocol_send_copy(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_composite_mode mode, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a copy instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a9db04720cbb2bc972f48f2e9332f23a8"><div class="ttname"><a href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a></div><div class="ttdeci">int guac_protocol_send_push(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a push instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a8947056262da2f3263b9851370597622"><div class="ttname"><a href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a></div><div class="ttdeci">int guac_protocol_send_mouse(guac_socket *socket, int x, int y, int button_mask, guac_timestamp timestamp)</div><div class="ttdoc">Sends a mouse instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="protocol_8h_html_a0e72a4122a3a7c45fa21e0d5607cc4d5"><div class="ttname"><a href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a></div><div class="ttdeci">int guac_protocol_send_shade(guac_socket *socket, const guac_layer *layer, int a)</div><div class="ttdoc">Sends a shade instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aaddd6d7c6ab1289efb3dd38c39bde531"><div class="ttname"><a href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a></div><div class="ttdeci">int guac_protocol_send_argv(guac_socket *socket, guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends an argv instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_acbd1869635b752bbf52998613804df00"><div class="ttname"><a href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a></div><div class="ttdeci">int guac_protocol_send_clip(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a clip instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a453e1b22d63a9d07ba23b3a6726c2f06"><div class="ttname"><a href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a></div><div class="ttdeci">int guac_protocol_send_file(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a file instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_abd34768cdcdf71ad40acc0f02cc77ed1"><div class="ttname"><a href="protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1">guac_protocol_send_required</a></div><div class="ttdeci">int guac_protocol_send_required(guac_socket *socket, const char **required)</div><div class="ttdoc">Sends a &quot;required&quot; instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_aefa251505e61332e8e1c27ade0478e64"><div class="ttname"><a href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a></div><div class="ttdeci">int guac_protocol_send_undefine(guac_socket *socket, const guac_object *object)</div><div class="ttdoc">Sends an undefine instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ab29ab6edd91e954fd686742c92eab6d4"><div class="ttname"><a href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a></div><div class="ttdeci">int guac_protocol_send_pop(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a pop instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_a17058795c93be51c82a9df95eca8e62b"><div class="ttname"><a href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a></div><div class="ttdeci">int guac_protocol_send_transform(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a transform instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_affc4cf09c3337bd860439da99bdfef98"><div class="ttname"><a href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a></div><div class="ttdeci">int guac_protocol_send_size(guac_socket *socket, const guac_layer *layer, int w, int h)</div><div class="ttdoc">Sends a size instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers.</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol_8h_html_a18b2c462077b7c51d211f3db09c30292"><div class="ttname"><a href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a></div><div class="ttdeci">int guac_protocol_send_pipe(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a pipe instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a3304f28ac07fa60ee7358a54e3f30396"><div class="ttname"><a href="protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396">guac_protocol_string_to_version</a></div><div class="ttdeci">guac_protocol_version guac_protocol_string_to_version(const char *version_string)</div><div class="ttdoc">Given a string representation of a protocol version, return the enum value of that protocol version,...</div></div>
+<div class="ttc" id="protocol_8h_html_a2d276595cea8a2d382240d868487f077"><div class="ttname"><a href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a></div><div class="ttdeci">int guac_protocol_send_key(guac_socket *socket, int keysym, int pressed, guac_timestamp timestamp)</div><div class="ttdoc">Sends a key instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ac8dea4393e2ec69d5d27fd0759a70fcb"><div class="ttname"><a href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a></div><div class="ttdeci">int guac_protocol_send_connect(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends a connect instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_abe696ca7c9841883c5d5bea513d4ee9a"><div class="ttname"><a href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a></div><div class="ttdeci">int guac_protocol_send_error(guac_socket *socket, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an error instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_ab02be6102d9f4aaa2bbb0b249f09d63e"><div class="ttname"><a href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a></div><div class="ttdeci">int guac_protocol_send_ack(guac_socket *socket, guac_stream *stream, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an ack instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="protocol_8h_html_afda3a1a8285e323fca6aef50cb2feb5e"><div class="ttname"><a href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a></div><div class="ttdeci">int guac_protocol_send_cfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cfill instruction over the given guac_socket connection.</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_0.html b/doc/1.3.0/libguac/search/all_0.html
new file mode 100644
index 0000000..c12c624
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_0.js b/doc/1.3.0/libguac/search/all_0.js
new file mode 100644
index 0000000..57eceb2
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_0.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_2dconstants_2eh',['argv-constants.h',['../argv-constants_8h.html',1,'']]],
+  ['argv_2dfntypes_2eh',['argv-fntypes.h',['../argv-fntypes_8h.html',1,'']]],
+  ['argv_2eh',['argv.h',['../argv_8h.html',1,'']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_1.html b/doc/1.3.0/libguac/search/all_1.html
new file mode 100644
index 0000000..5f98f71
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_1.js b/doc/1.3.0/libguac/search/all_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_10.html b/doc/1.3.0/libguac/search/all_10.html
new file mode 100644
index 0000000..85bd4d7
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_10.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_10.js b/doc/1.3.0/libguac/search/all_10.js
new file mode 100644
index 0000000..eb7b310
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_10.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_11.html b/doc/1.3.0/libguac/search/all_11.html
new file mode 100644
index 0000000..e6acbbc
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_11.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_11.js b/doc/1.3.0/libguac/search/all_11.js
new file mode 100644
index 0000000..6862d7d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_11.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]],
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_12.html b/doc/1.3.0/libguac/search/all_12.html
new file mode 100644
index 0000000..e34a4f4
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_12.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_12.js b/doc/1.3.0/libguac/search/all_12.js
new file mode 100644
index 0000000..9ff96b3
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_12.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_13.html b/doc/1.3.0/libguac/search/all_13.html
new file mode 100644
index 0000000..21e8f81
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_13.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_13.js b/doc/1.3.0/libguac/search/all_13.js
new file mode 100644
index 0000000..097c5bd
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_13.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_14.html b/doc/1.3.0/libguac/search/all_14.html
new file mode 100644
index 0000000..3496950
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_14.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_14.js b/doc/1.3.0/libguac/search/all_14.js
new file mode 100644
index 0000000..bd3dd17
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_14.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['wol_2dconstants_2eh',['wol-constants.h',['../wol-constants_8h.html',1,'']]],
+  ['wol_2eh',['wol.h',['../wol_8h.html',1,'']]],
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_2.html b/doc/1.3.0/libguac/search/all_2.html
new file mode 100644
index 0000000..0e8f27b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_2.js b/doc/1.3.0/libguac/search/all_2.js
new file mode 100644
index 0000000..5f7cbea
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_2.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_3.html b/doc/1.3.0/libguac/search/all_3.html
new file mode 100644
index 0000000..d318dca
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_3.js b/doc/1.3.0/libguac/search/all_3.js
new file mode 100644
index 0000000..7f4ab56
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]],
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_4.html b/doc/1.3.0/libguac/search/all_4.html
new file mode 100644
index 0000000..4eff157
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_4.js b/doc/1.3.0/libguac/search/all_4.js
new file mode 100644
index 0000000..a275903
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_4.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]],
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_5.html b/doc/1.3.0/libguac/search/all_5.html
new file mode 100644
index 0000000..273a140
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_5.js b/doc/1.3.0/libguac/search/all_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_6.html b/doc/1.3.0/libguac/search/all_6.html
new file mode 100644
index 0000000..a3df4a9
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_6.js b/doc/1.3.0/libguac/search/all_6.js
new file mode 100644
index 0000000..5d9472e
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_6.js
@@ -0,0 +1,319 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5fargv_5fawait',['guac_argv_await',['../argv_8h.html#a3390cfa416876991fcaf08871160415d',1,'argv.h']]],
+  ['guac_5fargv_5fcallback',['guac_argv_callback',['../argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6',1,'argv-fntypes.h']]],
+  ['guac_5fargv_5fhandler',['guac_argv_handler',['../argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c',1,'argv.h']]],
+  ['guac_5fargv_5fmax_5flength',['GUAC_ARGV_MAX_LENGTH',['../argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fmimetype_5flength',['GUAC_ARGV_MAX_MIMETYPE_LENGTH',['../argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fname_5flength',['GUAC_ARGV_MAX_NAME_LENGTH',['../argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fregistered',['GUAC_ARGV_MAX_REGISTERED',['../argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f',1,'argv-constants.h']]],
+  ['guac_5fargv_5foption_5fecho',['GUAC_ARGV_OPTION_ECHO',['../argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e',1,'argv-constants.h']]],
+  ['guac_5fargv_5foption_5fonce',['GUAC_ARGV_OPTION_ONCE',['../argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029',1,'argv-constants.h']]],
+  ['guac_5fargv_5freceived',['guac_argv_received',['../argv_8h.html#adb02a115909eed11fcf0d864de04ea8d',1,'argv.h']]],
+  ['guac_5fargv_5fregister',['guac_argv_register',['../argv_8h.html#abc25c66eecc88d82851aab121f93f599',1,'argv.h']]],
+  ['guac_5fargv_5fstop',['guac_argv_stop',['../argv_8h.html#a600211a457a9db1ad0741b13d0179d33',1,'argv.h']]],
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5fclient_5fowner_5fsend_5frequired',['guac_client_owner_send_required',['../client_8h.html#aef81b4409308c195d26db3443e9e76fe',1,'client.h']]],
+  ['guac_5fclient_5fowner_5fsupports_5frequired',['guac_client_owner_supports_required',['../client_8h.html#a347fdf77fb6e0829f00513e6b4da406f',1,'client.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frequired',['guac_protocol_send_required',['../protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstring_5fto_5fversion',['guac_protocol_string_to_version',['../protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396',1,'protocol.h']]],
+  ['guac_5fprotocol_5fversion',['guac_protocol_version',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f0_5f0',['GUAC_PROTOCOL_VERSION_1_0_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f1_5f0',['GUAC_PROTOCOL_VERSION_1_1_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f3_5f0',['GUAC_PROTOCOL_VERSION_1_3_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5fto_5fstring',['guac_protocol_version_to_string',['../protocol_8h.html#af97ab710efe6080977b0450548e6af0b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fversion_5funknown',['GUAC_PROTOCOL_VERSION_UNKNOWN',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052',1,'protocol-types.h']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'GUAC_SOCKET_OPEN():&#160;socket-types.h'],['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'guac_socket_open(int fd):&#160;socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]],
+  ['guac_5fstrdup',['guac_strdup',['../string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b',1,'string.h']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5frequired',['guac_user_supports_required',['../user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]],
+  ['guac_5fwol_5flocal_5fipv4_5fbroadcast',['GUAC_WOL_LOCAL_IPV4_BROADCAST',['../wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f',1,'wol-constants.h']]],
+  ['guac_5fwol_5fpacket_5fsize',['GUAC_WOL_PACKET_SIZE',['../wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54',1,'wol-constants.h']]],
+  ['guac_5fwol_5fport',['GUAC_WOL_PORT',['../wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b',1,'wol-constants.h']]],
+  ['guac_5fwol_5fwake',['guac_wol_wake',['../wol_8h.html#ace39296575e120004284bae76c6053cb',1,'wol.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_7.html b/doc/1.3.0/libguac/search/all_7.html
new file mode 100644
index 0000000..44a65a2
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_7.js b/doc/1.3.0/libguac/search/all_7.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_8.html b/doc/1.3.0/libguac/search/all_8.html
new file mode 100644
index 0000000..7f74177
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_8.js b/doc/1.3.0/libguac/search/all_8.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_9.html b/doc/1.3.0/libguac/search/all_9.html
new file mode 100644
index 0000000..4bd8c10
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_9.js b/doc/1.3.0/libguac/search/all_9.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_a.html b/doc/1.3.0/libguac/search/all_a.html
new file mode 100644
index 0000000..b17d7ac
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_a.js b/doc/1.3.0/libguac/search/all_a.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_b.html b/doc/1.3.0/libguac/search/all_b.html
new file mode 100644
index 0000000..1a8def1
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_b.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_b.js b/doc/1.3.0/libguac/search/all_b.js
new file mode 100644
index 0000000..6c4054d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_b.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_c.html b/doc/1.3.0/libguac/search/all_c.html
new file mode 100644
index 0000000..954bbb9
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_c.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_c.js b/doc/1.3.0/libguac/search/all_c.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_d.html b/doc/1.3.0/libguac/search/all_d.html
new file mode 100644
index 0000000..4774fbd
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_d.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_d.js b/doc/1.3.0/libguac/search/all_d.js
new file mode 100644
index 0000000..5df2050
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_d.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]],
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_e.html b/doc/1.3.0/libguac/search/all_e.html
new file mode 100644
index 0000000..bb66fdf
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_e.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_e.js b/doc/1.3.0/libguac/search/all_e.js
new file mode 100644
index 0000000..cbf0749
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_e.js
@@ -0,0 +1,17 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]],
+  ['protocol_5fversion',['protocol_version',['../structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658',1,'guac_user_info']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/all_f.html b/doc/1.3.0/libguac/search/all_f.html
new file mode 100644
index 0000000..3e0ec0b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_f.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/all_f.js b/doc/1.3.0/libguac/search/all_f.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/all_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.3.0/libguac/search/classes_0.html b/doc/1.3.0/libguac/search/classes_0.html
new file mode 100644
index 0000000..fd45d0a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/classes_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/classes_0.js b/doc/1.3.0/libguac/search/classes_0.js
new file mode 100644
index 0000000..3663608
--- /dev/null
+++ b/doc/1.3.0/libguac/search/classes_0.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/close.png b/doc/1.3.0/libguac/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/close.png
Binary files differ
diff --git a/doc/1.3.0/libguac/search/defines_0.html b/doc/1.3.0/libguac/search/defines_0.html
new file mode 100644
index 0000000..55b3468
--- /dev/null
+++ b/doc/1.3.0/libguac/search/defines_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/defines_0.js b/doc/1.3.0/libguac/search/defines_0.js
new file mode 100644
index 0000000..ea90836
--- /dev/null
+++ b/doc/1.3.0/libguac/search/defines_0.js
@@ -0,0 +1,41 @@
+var searchData=
+[
+  ['guac_5fargv_5fmax_5flength',['GUAC_ARGV_MAX_LENGTH',['../argv-constants_8h.html#abd92a32fe9b7619580d50dbeaed8577d',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fmimetype_5flength',['GUAC_ARGV_MAX_MIMETYPE_LENGTH',['../argv-constants_8h.html#a9e06672efd6fd7d2353d531be842d431',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fname_5flength',['GUAC_ARGV_MAX_NAME_LENGTH',['../argv-constants_8h.html#aabc731c011c87d8db3580baa2f893b87',1,'argv-constants.h']]],
+  ['guac_5fargv_5fmax_5fregistered',['GUAC_ARGV_MAX_REGISTERED',['../argv-constants_8h.html#a69d1917b4f8b6d91b6b6ae17feaac99f',1,'argv-constants.h']]],
+  ['guac_5fargv_5foption_5fecho',['GUAC_ARGV_OPTION_ECHO',['../argv-constants_8h.html#a851551c2d9daf9b473da25aa32693e0e',1,'argv-constants.h']]],
+  ['guac_5fargv_5foption_5fonce',['GUAC_ARGV_OPTION_ONCE',['../argv-constants_8h.html#a4d2cae4a9598d24401fdc0067e879029',1,'argv-constants.h']]],
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guac_5fwol_5flocal_5fipv4_5fbroadcast',['GUAC_WOL_LOCAL_IPV4_BROADCAST',['../wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f',1,'wol-constants.h']]],
+  ['guac_5fwol_5fpacket_5fsize',['GUAC_WOL_PACKET_SIZE',['../wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54',1,'wol-constants.h']]],
+  ['guac_5fwol_5fport',['GUAC_WOL_PORT',['../wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b',1,'wol-constants.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/enums_0.html b/doc/1.3.0/libguac/search/enums_0.html
new file mode 100644
index 0000000..5aad57c
--- /dev/null
+++ b/doc/1.3.0/libguac/search/enums_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/enums_0.js b/doc/1.3.0/libguac/search/enums_0.js
new file mode 100644
index 0000000..5ae76c6
--- /dev/null
+++ b/doc/1.3.0/libguac/search/enums_0.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion',['guac_protocol_version',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/enumvalues_0.html b/doc/1.3.0/libguac/search/enumvalues_0.html
new file mode 100644
index 0000000..e57921b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/enumvalues_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/enumvalues_0.js b/doc/1.3.0/libguac/search/enumvalues_0.js
new file mode 100644
index 0000000..dfef53f
--- /dev/null
+++ b/doc/1.3.0/libguac/search/enumvalues_0.js
@@ -0,0 +1,65 @@
+var searchData=
+[
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f0_5f0',['GUAC_PROTOCOL_VERSION_1_0_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baeb36e8a192edae0a4cf22063801407fe',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f1_5f0',['GUAC_PROTOCOL_VERSION_1_1_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba3d50a29f8fb2f29fa21dc7ca3889f41f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5f1_5f3_5f0',['GUAC_PROTOCOL_VERSION_1_3_0',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8ba8f0ec641ce10a3b848a87d5870220835',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fversion_5funknown',['GUAC_PROTOCOL_VERSION_UNKNOWN',['../protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8baaa50b9f536a0346cb43437ea6b744052',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'socket-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_0.html b/doc/1.3.0/libguac/search/files_0.html
new file mode 100644
index 0000000..46a0e01
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_0.js b/doc/1.3.0/libguac/search/files_0.js
new file mode 100644
index 0000000..a500f36
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_0.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['argv_2dconstants_2eh',['argv-constants.h',['../argv-constants_8h.html',1,'']]],
+  ['argv_2dfntypes_2eh',['argv-fntypes.h',['../argv-fntypes_8h.html',1,'']]],
+  ['argv_2eh',['argv.h',['../argv_8h.html',1,'']]],
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_1.html b/doc/1.3.0/libguac/search/files_1.html
new file mode 100644
index 0000000..abd43e8
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_1.js b/doc/1.3.0/libguac/search/files_1.js
new file mode 100644
index 0000000..3aea380
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_1.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_2.html b/doc/1.3.0/libguac/search/files_2.html
new file mode 100644
index 0000000..f60077d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_2.js b/doc/1.3.0/libguac/search/files_2.js
new file mode 100644
index 0000000..e8f70f3
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_3.html b/doc/1.3.0/libguac/search/files_3.html
new file mode 100644
index 0000000..0e8018e
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_3.js b/doc/1.3.0/libguac/search/files_3.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_4.html b/doc/1.3.0/libguac/search/files_4.html
new file mode 100644
index 0000000..50c63c7
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_4.js b/doc/1.3.0/libguac/search/files_4.js
new file mode 100644
index 0000000..82063af
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_5.html b/doc/1.3.0/libguac/search/files_5.html
new file mode 100644
index 0000000..d5d4d01
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_5.js b/doc/1.3.0/libguac/search/files_5.js
new file mode 100644
index 0000000..1a05a51
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_6.html b/doc/1.3.0/libguac/search/files_6.html
new file mode 100644
index 0000000..8b720ce
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_6.js b/doc/1.3.0/libguac/search/files_6.js
new file mode 100644
index 0000000..0fd2033
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_6.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_7.html b/doc/1.3.0/libguac/search/files_7.html
new file mode 100644
index 0000000..f380c68
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_7.js b/doc/1.3.0/libguac/search/files_7.js
new file mode 100644
index 0000000..424cb65
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_7.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_8.html b/doc/1.3.0/libguac/search/files_8.html
new file mode 100644
index 0000000..c5fdb53
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_8.js b/doc/1.3.0/libguac/search/files_8.js
new file mode 100644
index 0000000..dccf3b3
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_9.html b/doc/1.3.0/libguac/search/files_9.html
new file mode 100644
index 0000000..07d2616
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_9.js b/doc/1.3.0/libguac/search/files_9.js
new file mode 100644
index 0000000..2eb6891
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_9.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/files_a.html b/doc/1.3.0/libguac/search/files_a.html
new file mode 100644
index 0000000..d6fc554
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/files_a.js b/doc/1.3.0/libguac/search/files_a.js
new file mode 100644
index 0000000..a46b2b0
--- /dev/null
+++ b/doc/1.3.0/libguac/search/files_a.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['wol_2dconstants_2eh',['wol-constants.h',['../wol-constants_8h.html',1,'']]],
+  ['wol_2eh',['wol.h',['../wol_8h.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/functions_0.html b/doc/1.3.0/libguac/search/functions_0.html
new file mode 100644
index 0000000..eb8c93b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/functions_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/functions_0.js b/doc/1.3.0/libguac/search/functions_0.js
new file mode 100644
index 0000000..76d9402
--- /dev/null
+++ b/doc/1.3.0/libguac/search/functions_0.js
@@ -0,0 +1,159 @@
+var searchData=
+[
+  ['guac_5fargv_5fawait',['guac_argv_await',['../argv_8h.html#a3390cfa416876991fcaf08871160415d',1,'argv.h']]],
+  ['guac_5fargv_5freceived',['guac_argv_received',['../argv_8h.html#adb02a115909eed11fcf0d864de04ea8d',1,'argv.h']]],
+  ['guac_5fargv_5fregister',['guac_argv_register',['../argv_8h.html#abc25c66eecc88d82851aab121f93f599',1,'argv.h']]],
+  ['guac_5fargv_5fstop',['guac_argv_stop',['../argv_8h.html#a600211a457a9db1ad0741b13d0179d33',1,'argv.h']]],
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5fowner_5fsend_5frequired',['guac_client_owner_send_required',['../client_8h.html#aef81b4409308c195d26db3443e9e76fe',1,'client.h']]],
+  ['guac_5fclient_5fowner_5fsupports_5frequired',['guac_client_owner_supports_required',['../client_8h.html#a347fdf77fb6e0829f00513e6b4da406f',1,'client.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frequired',['guac_protocol_send_required',['../protocol_8h.html#abd34768cdcdf71ad40acc0f02cc77ed1',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fstring_5fto_5fversion',['guac_protocol_string_to_version',['../protocol_8h.html#a3304f28ac07fa60ee7358a54e3f30396',1,'protocol.h']]],
+  ['guac_5fprotocol_5fversion_5fto_5fstring',['guac_protocol_version_to_string',['../protocol_8h.html#af97ab710efe6080977b0450548e6af0b',1,'protocol.h']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['guac_socket_open',['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstrdup',['guac_strdup',['../string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b',1,'string.h']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5frequired',['guac_user_supports_required',['../user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]],
+  ['guac_5fwol_5fwake',['guac_wol_wake',['../wol_8h.html#ace39296575e120004284bae76c6053cb',1,'wol.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/functions_1.html b/doc/1.3.0/libguac/search/functions_1.html
new file mode 100644
index 0000000..ea85900
--- /dev/null
+++ b/doc/1.3.0/libguac/search/functions_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/functions_1.js b/doc/1.3.0/libguac/search/functions_1.js
new file mode 100644
index 0000000..ae1b123
--- /dev/null
+++ b/doc/1.3.0/libguac/search/functions_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/mag_sel.png b/doc/1.3.0/libguac/search/mag_sel.png
new file mode 100644
index 0000000..39c0ed5
--- /dev/null
+++ b/doc/1.3.0/libguac/search/mag_sel.png
Binary files differ
diff --git a/doc/1.3.0/libguac/search/nomatches.html b/doc/1.3.0/libguac/search/nomatches.html
new file mode 100644
index 0000000..c2d9c4e
--- /dev/null
+++ b/doc/1.3.0/libguac/search/nomatches.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/pages_0.html b/doc/1.3.0/libguac/search/pages_0.html
new file mode 100644
index 0000000..b1835d4
--- /dev/null
+++ b/doc/1.3.0/libguac/search/pages_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/pages_0.js b/doc/1.3.0/libguac/search/pages_0.js
new file mode 100644
index 0000000..038da54
--- /dev/null
+++ b/doc/1.3.0/libguac/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.3.0/libguac/search/search.css b/doc/1.3.0/libguac/search/search.css
new file mode 100644
index 0000000..3cf9df9
--- /dev/null
+++ b/doc/1.3.0/libguac/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    float: none;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    height: 24px;
+    z-index: 102;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:115px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:8px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 10001;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+    z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doc/1.3.0/libguac/search/search.js b/doc/1.3.0/libguac/search/search.js
new file mode 100644
index 0000000..a554ab9
--- /dev/null
+++ b/doc/1.3.0/libguac/search/search.js
@@ -0,0 +1,814 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/doc/1.3.0/libguac/search/search_l.png b/doc/1.3.0/libguac/search/search_l.png
new file mode 100644
index 0000000..fd5f7da
--- /dev/null
+++ b/doc/1.3.0/libguac/search/search_l.png
Binary files differ
diff --git a/doc/1.3.0/libguac/search/search_m.png b/doc/1.3.0/libguac/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/doc/1.3.0/libguac/search/search_m.png
Binary files differ
diff --git a/doc/1.3.0/libguac/search/search_r.png b/doc/1.3.0/libguac/search/search_r.png
new file mode 100644
index 0000000..1af5d21
--- /dev/null
+++ b/doc/1.3.0/libguac/search/search_r.png
Binary files differ
diff --git a/doc/1.3.0/libguac/search/searchdata.js b/doc/1.3.0/libguac/search/searchdata.js
new file mode 100644
index 0000000..ba7c230
--- /dev/null
+++ b/doc/1.3.0/libguac/search/searchdata.js
@@ -0,0 +1,42 @@
+var indexSectionsWithContent =
+{
+  0: "abcdefghijklmoprstuvw",
+  1: "g",
+  2: "acehlopstuw",
+  3: "gv",
+  4: "abcdefgijklmoprstuvw",
+  5: "g",
+  6: "g",
+  7: "g",
+  8: "g",
+  9: "d"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "variables",
+  5: "typedefs",
+  6: "enums",
+  7: "enumvalues",
+  8: "defines",
+  9: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Data Structures",
+  2: "Files",
+  3: "Functions",
+  4: "Variables",
+  5: "Typedefs",
+  6: "Enumerations",
+  7: "Enumerator",
+  8: "Macros",
+  9: "Pages"
+};
+
diff --git a/doc/1.3.0/libguac/search/typedefs_0.html b/doc/1.3.0/libguac/search/typedefs_0.html
new file mode 100644
index 0000000..b9ad046
--- /dev/null
+++ b/doc/1.3.0/libguac/search/typedefs_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/typedefs_0.js b/doc/1.3.0/libguac/search/typedefs_0.js
new file mode 100644
index 0000000..8059955
--- /dev/null
+++ b/doc/1.3.0/libguac/search/typedefs_0.js
@@ -0,0 +1,37 @@
+var searchData=
+[
+  ['guac_5fargv_5fcallback',['guac_argv_callback',['../argv-fntypes_8h.html#a760d238328c8ac471f71dbe3559949d6',1,'argv-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_0.html b/doc/1.3.0/libguac/search/variables_0.html
new file mode 100644
index 0000000..ac56c4d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_0.js b/doc/1.3.0/libguac/search/variables_0.js
new file mode 100644
index 0000000..4c44e8b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_0.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_1.html b/doc/1.3.0/libguac/search/variables_1.html
new file mode 100644
index 0000000..e86e846
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_1.js b/doc/1.3.0/libguac/search/variables_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_10.html b/doc/1.3.0/libguac/search/variables_10.html
new file mode 100644
index 0000000..fe6ae0e
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_10.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_10.js b/doc/1.3.0/libguac/search/variables_10.js
new file mode 100644
index 0000000..7bc40a3
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_10.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_11.html b/doc/1.3.0/libguac/search/variables_11.html
new file mode 100644
index 0000000..4195d22
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_11.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_11.js b/doc/1.3.0/libguac/search/variables_11.js
new file mode 100644
index 0000000..c9eb0ec
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_11.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_12.html b/doc/1.3.0/libguac/search/variables_12.html
new file mode 100644
index 0000000..09714c8
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_12.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_12.js b/doc/1.3.0/libguac/search/variables_12.js
new file mode 100644
index 0000000..1619d15
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_12.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_13.html b/doc/1.3.0/libguac/search/variables_13.html
new file mode 100644
index 0000000..56ce903
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_13.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_13.js b/doc/1.3.0/libguac/search/variables_13.js
new file mode 100644
index 0000000..50a5677
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_13.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_2.html b/doc/1.3.0/libguac/search/variables_2.html
new file mode 100644
index 0000000..4cd230d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_2.js b/doc/1.3.0/libguac/search/variables_2.js
new file mode 100644
index 0000000..befc009
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_2.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_3.html b/doc/1.3.0/libguac/search/variables_3.html
new file mode 100644
index 0000000..269013a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_3.js b/doc/1.3.0/libguac/search/variables_3.js
new file mode 100644
index 0000000..dfec7e5
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_4.html b/doc/1.3.0/libguac/search/variables_4.html
new file mode 100644
index 0000000..e4ada10
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_4.js b/doc/1.3.0/libguac/search/variables_4.js
new file mode 100644
index 0000000..6d7ea7f
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_5.html b/doc/1.3.0/libguac/search/variables_5.html
new file mode 100644
index 0000000..4359056
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_5.js b/doc/1.3.0/libguac/search/variables_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_6.html b/doc/1.3.0/libguac/search/variables_6.html
new file mode 100644
index 0000000..6d082f5
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_6.js b/doc/1.3.0/libguac/search/variables_6.js
new file mode 100644
index 0000000..11570f7
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5fargv_5fhandler',['guac_argv_handler',['../argv_8h.html#a8fe9c1813c0264dd8d9d598432ebc79c',1,'argv.h']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_7.html b/doc/1.3.0/libguac/search/variables_7.html
new file mode 100644
index 0000000..1369b1f
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_7.js b/doc/1.3.0/libguac/search/variables_7.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_7.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_8.html b/doc/1.3.0/libguac/search/variables_8.html
new file mode 100644
index 0000000..61bc9c2
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_8.js b/doc/1.3.0/libguac/search/variables_8.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_9.html b/doc/1.3.0/libguac/search/variables_9.html
new file mode 100644
index 0000000..57828c6
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_9.js b/doc/1.3.0/libguac/search/variables_9.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_a.html b/doc/1.3.0/libguac/search/variables_a.html
new file mode 100644
index 0000000..9f7b0f8
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_a.js b/doc/1.3.0/libguac/search/variables_a.js
new file mode 100644
index 0000000..d5fafa9
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_a.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_b.html b/doc/1.3.0/libguac/search/variables_b.html
new file mode 100644
index 0000000..f2357c0
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_b.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_b.js b/doc/1.3.0/libguac/search/variables_b.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_c.html b/doc/1.3.0/libguac/search/variables_c.html
new file mode 100644
index 0000000..0bafcb6
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_c.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_c.js b/doc/1.3.0/libguac/search/variables_c.js
new file mode 100644
index 0000000..c24d1a5
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_d.html b/doc/1.3.0/libguac/search/variables_d.html
new file mode 100644
index 0000000..47badf3
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_d.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_d.js b/doc/1.3.0/libguac/search/variables_d.js
new file mode 100644
index 0000000..182ad57
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_d.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['protocol_5fversion',['protocol_version',['../structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658',1,'guac_user_info']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_e.html b/doc/1.3.0/libguac/search/variables_e.html
new file mode 100644
index 0000000..d284e43
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_e.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_e.js b/doc/1.3.0/libguac/search/variables_e.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_e.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.3.0/libguac/search/variables_f.html b/doc/1.3.0/libguac/search/variables_f.html
new file mode 100644
index 0000000..dcfc966
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_f.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/search/variables_f.js b/doc/1.3.0/libguac/search/variables_f.js
new file mode 100644
index 0000000..4f14c14
--- /dev/null
+++ b/doc/1.3.0/libguac/search/variables_f.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.3.0/libguac/socket-constants_8h.html b/doc/1.3.0/libguac/socket-constants_8h.html
new file mode 100644
index 0000000..5f090ac
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-constants_8h.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:af93053e27466c566624301d7b32a68c3"><td class="memItemLeft" align="right" valign="top"><a id="af93053e27466c566624301d7b32a68c3"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">GUAC_SOCKET_OUTPUT_BUFFER_SIZE</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:af93053e27466c566624301d7b32a68c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bytes to buffer within each socket before flushing. <br /></td></tr>
+<tr class="separator:af93053e27466c566624301d7b32a68c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memItemLeft" align="right" valign="top"><a id="aa8820e76e3d3471bdc8771591ebf29f7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">GUAC_SOCKET_KEEP_ALIVE_INTERVAL</a>&#160;&#160;&#160;5000</td></tr>
+<tr class="memdesc:aa8820e76e3d3471bdc8771591ebf29f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of milliseconds to wait between keep-alive pings on a socket with keep-alive enabled. <br /></td></tr>
+<tr class="separator:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-constants_8h_source.html b/doc/1.3.0/libguac/socket-constants_8h_source.html
new file mode 100644
index 0000000..a0ce56e
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">   32</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_OUTPUT_BUFFER_SIZE 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">   38</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_KEEP_ALIVE_INTERVAL 5000</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-fntypes_8h.html b/doc/1.3.0/libguac/socket-fntypes_8h.html
new file mode 100644
index 0000000..e4dc7ce
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-fntypes_8h.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic read handler for socket read operations, modeled after the standard POSIX read() function.  <a href="#a75396c8cb7b0ba91102fcd447a1eb36b">More...</a><br /></td></tr>
+<tr class="separator:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7198af0a6bbac52794eb248c81d90c6a"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:a7198af0a6bbac52794eb248c81d90c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic write handler for socket write operations, modeled after the standard POSIX write() function.  <a href="#a7198af0a6bbac52794eb248c81d90c6a">More...</a><br /></td></tr>
+<tr class="separator:a7198af0a6bbac52794eb248c81d90c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a934350207615e0e2066954f9484153f8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a934350207615e0e2066954f9484153f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for socket select operations, similar to the POSIX select() function.  <a href="#a934350207615e0e2066954f9484153f8">More...</a><br /></td></tr>
+<tr class="separator:a934350207615e0e2066954f9484153f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic flush handler for socket flush operations.  <a href="#a894bc88c6288ee6b6713a2ea64bd05a0">More...</a><br /></td></tr>
+<tr class="separator:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b714d65f18d57bb52f929c7d3909526"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1b714d65f18d57bb52f929c7d3909526"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction.">guac_socket_instruction_begin()</a> is called.  <a href="#a1b714d65f18d57bb52f929c7d3909526">More...</a><br /></td></tr>
+<tr class="separator:a1b714d65f18d57bb52f929c7d3909526"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction.">guac_socket_instruction_end()</a> is called.  <a href="#af1a6f8eb81522aab289c9f4ed6051d3f">More...</a><br /></td></tr>
+<tr class="separator:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for the closing of a socket, modeled after the standard POSIX close() function.  <a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">More...</a><br /></td></tr>
+<tr class="separator:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a894bc88c6288ee6b6713a2ea64bd05a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a894bc88c6288ee6b6713a2ea64bd05a0">&#9670;&nbsp;</a></span>guac_socket_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_flush_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic flush handler for socket flush operations. </p>
+<p>This function is not modeled after any POSIX function. When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called when <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12" title="Flushes the write buffer.">guac_socket_flush()</a> is called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> being flushed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a9700a8ba2011d6e6ce13e3e6c6397fc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">&#9670;&nbsp;</a></span>guac_socket_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_free_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for the closing of a socket, modeled after the standard POSIX close() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called when the socket is closed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1b714d65f18d57bb52f929c7d3909526"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b714d65f18d57bb52f929c7d3909526">&#9670;&nbsp;</a></span>guac_socket_lock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_lock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction.">guac_socket_instruction_begin()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to which exclusive access is required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a75396c8cb7b0ba91102fcd447a1eb36b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a75396c8cb7b0ba91102fcd447a1eb36b">&#9670;&nbsp;</a></span>guac_socket_read_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_read_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic read handler for socket read operations, modeled after the standard POSIX read() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called when data needs to be read into the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> being read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer we must populate with data. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read into the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a934350207615e0e2066954f9484153f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a934350207615e0e2066954f9484153f8">&#9670;&nbsp;</a></span>guac_socket_select_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_select_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for socket select operations, similar to the POSIX select() function. </p>
+<p>When <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses.">guac_socket_select()</a> is called on a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, its guac_socket_select_handler will be invoked, if defined.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> being selected. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="af1a6f8eb81522aab289c9f4ed6051d3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1a6f8eb81522aab289c9f4ed6051d3f">&#9670;&nbsp;</a></span>guac_socket_unlock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_unlock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction.">guac_socket_instruction_end()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to which exclusive access is no longer required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a7198af0a6bbac52794eb248c81d90c6a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7198af0a6bbac52794eb248c81d90c6a">&#9670;&nbsp;</a></span>guac_socket_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_write_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic write handler for socket write operations, modeled after the standard POSIX write() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, a handler of this type will be called when data needs to be written to the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> being written to. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer containing data to be written. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to written to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-fntypes_8h_source.html b/doc/1.3.0/libguac/socket-fntypes_8h_source.html
new file mode 100644
index 0000000..c93bd1e
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-fntypes_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">   43</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">   56</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">   70</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">   83</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">   93</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">  103</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">  113</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-ssl_8h.html b/doc/1.3.0/libguac/socket-ssl_8h.html
new file mode 100644
index 0000000..1e216c5
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-ssl_8h.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-ssl.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-ssl_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSL socket-specific data.  <a href="structguac__socket__ssl__data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afa6689181258a29460b978f1e496f790"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a> (SSL_CTX *context, int fd)</td></tr>
+<tr class="memdesc:afa6689181258a29460b978f1e496f790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will use SSL for all communication.  <a href="#afa6689181258a29460b978f1e496f790">More...</a><br /></td></tr>
+<tr class="separator:afa6689181258a29460b978f1e496f790"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. </p>
+<p>This header will only be available if libguac was built with SSL support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="afa6689181258a29460b978f1e496f790"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa6689181258a29460b978f1e496f790">&#9670;&nbsp;</a></span>guac_socket_open_secure()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_secure </td>
+          <td>(</td>
+          <td class="paramtype">SSL_CTX *&#160;</td>
+          <td class="paramname"><em>context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will use SSL for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will automatically close the associated file descriptor.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">context</td><td>The SSL_CTX structure describing the desired SSL configuration.</td></tr>
+    <tr><td class="paramname">fd</td><td>The file descriptor to use for the SSL connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will transparently use SSL for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-ssl_8h_source.html b/doc/1.3.0/libguac/socket-ssl_8h_source.html
new file mode 100644
index 0000000..9397ff6
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-ssl_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-ssl.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-ssl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;openssl/ssl.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">   49</a></span>&#160;    SSL_CTX* <a class="code" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">   55</a></span>&#160;    SSL* <a class="code" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a>(SSL_CTX* context, <span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html"><div class="ttname"><a href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></div><div class="ttdoc">SSL socket-specific data.</div><div class="ttdef"><b>Definition:</b> socket-ssl.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_ab86a780b4801fdbf411a24255cf700ac"><div class="ttname"><a href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data::ssl</a></div><div class="ttdeci">SSL * ssl</div><div class="ttdoc">The SSL connection, created automatically via guac_socket_open_secure().</div><div class="ttdef"><b>Definition:</b> socket-ssl.h:55</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a22b295ba9b80cc15a5dfa4c06aea541f"><div class="ttname"><a href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data::context</a></div><div class="ttdeci">SSL_CTX * context</div><div class="ttdoc">The current SSL context.</div><div class="ttdef"><b>Definition:</b> socket-ssl.h:49</div></div>
+<div class="ttc" id="socket-ssl_8h_html_afa6689181258a29460b978f1e496f790"><div class="ttname"><a href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a></div><div class="ttdeci">guac_socket * guac_socket_open_secure(SSL_CTX *context, int fd)</div><div class="ttdoc">Creates a new guac_socket which will use SSL for all communication.</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a4b6134fe4c41d78e42abbe5d8c27330a"><div class="ttname"><a href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data::fd</a></div><div class="ttdeci">int fd</div><div class="ttdoc">The file descriptor that SSL communication will take place over.</div><div class="ttdef"><b>Definition:</b> socket-ssl.h:44</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-types_8h.html b/doc/1.3.0/libguac/socket-types_8h.html
new file mode 100644
index 0000000..d6edb2e
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-types_8h.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> { <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>, 
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a>
+ }</td></tr>
+<tr class="memdesc:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.  <a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">More...</a><br /></td></tr>
+<tr class="separator:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a0ac0c0cd123b57d8aba5e6ec6fd20939"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ac0c0cd123b57d8aba5e6ec6fd20939">&#9670;&nbsp;</a></span>guac_socket_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"></a>GUAC_SOCKET_OPEN&#160;</td><td class="fielddoc"><p>The socket is open and can be written to / read from. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"></a>GUAC_SOCKET_CLOSED&#160;</td><td class="fielddoc"><p>The socket is closed. </p>
+<p>Reads and writes will fail. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-types_8h_source.html b/doc/1.3.0/libguac/socket-types_8h_source.html
new file mode 100644
index 0000000..fb38a99
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-types_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> <a class="code" href="structguac__socket.html">guac_socket</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">   43</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">   48</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;} <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket.</div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a></div><div class="ttdoc">The socket is open and can be written to / read from.</div><div class="ttdef"><b>Definition:</b> socket-types.h:43</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="ttdoc">The socket is closed.</div><div class="ttdef"><b>Definition:</b> socket-types.h:48</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-wsa_8h.html b/doc/1.3.0/libguac/socket-wsa_8h.html
new file mode 100644
index 0000000..9767511
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-wsa_8h.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-wsa.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock").  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-wsa_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac020ae320548582cd76d18baca0ba3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a> (SOCKET sock)</td></tr>
+<tr class="memdesc:ac020ae320548582cd76d18baca0ba3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication.  <a href="#ac020ae320548582cd76d18baca0ba3be">More...</a><br /></td></tr>
+<tr class="separator:ac020ae320548582cd76d18baca0ba3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). </p>
+<p>This header will only be available if libguac was built with WSA support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ac020ae320548582cd76d18baca0ba3be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac020ae320548582cd76d18baca0ba3be">&#9670;&nbsp;</a></span>guac_socket_open_wsa()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_wsa </td>
+          <td>(</td>
+          <td class="paramtype">SOCKET&#160;</td>
+          <td class="paramname"><em>sock</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will automatically close the associated SOCKET handle.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sock</td><td>The WSA SOCKET handle to use for the connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which will transparently use the Windows Socket API for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket-wsa_8h_source.html b/doc/1.3.0/libguac/socket-wsa_8h_source.html
new file mode 100644
index 0000000..9dc51ff
--- /dev/null
+++ b/doc/1.3.0/libguac/socket-wsa_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-wsa.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-wsa_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;winsock2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a>(SOCKET sock);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-wsa_8h_html_ac020ae320548582cd76d18baca0ba3be"><div class="ttname"><a href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a></div><div class="ttdeci">guac_socket * guac_socket_open_wsa(SOCKET sock)</div><div class="ttdoc">Creates a new guac_socket which will use the Windows Socket API (aka WSA or &quot;winsock&quot;) for all commun...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket_8h.html b/doc/1.3.0/libguac/socket_8h.html
new file mode 100644
index 0000000..ba07334
--- /dev/null
+++ b/doc/1.3.0/libguac/socket_8h.html
@@ -0,0 +1,746 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object and functionss for using and manipulating it.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html">guac_socket</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The core I/O object of Guacamole.  <a href="structguac__socket.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7e5859b812923b894779f59353fdadb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a> ()</td></tr>
+<tr class="memdesc:a7e5859b812923b894779f59353fdadb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.  <a href="#a7e5859b812923b894779f59353fdadb4">More...</a><br /></td></tr>
+<tr class="separator:a7e5859b812923b894779f59353fdadb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a376df8efcc02a7104504f104433884ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a376df8efcc02a7104504f104433884ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> and all associated resources.  <a href="#a376df8efcc02a7104504f104433884ed">More...</a><br /></td></tr>
+<tr class="separator:a376df8efcc02a7104504f104433884ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d8c5111a8234c7785ae23f379f7db03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1d8c5111a8234c7785ae23f379f7db03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open.  <a href="#a1d8c5111a8234c7785ae23f379f7db03">More...</a><br /></td></tr>
+<tr class="separator:a1d8c5111a8234c7785ae23f379f7db03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a00c8f00ab54c42e42c9f489caf5478b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the beginning of a Guacamole protocol instruction.  <a href="#a00c8f00ab54c42e42c9f489caf5478b1">More...</a><br /></td></tr>
+<tr class="separator:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of a Guacamole protocol instruction.  <a href="#a603c23b24e2e2e95eeb2ce08d8115e94">More...</a><br /></td></tr>
+<tr class="separator:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a076f62b9b6082260462e18ca77c64e7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a> (int fd)</td></tr>
+<tr class="memdesc:a076f62b9b6082260462e18ca77c64e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object with the given open file descriptor.  <a href="#a076f62b9b6082260462e18ca77c64e7a">More...</a><br /></td></tr>
+<tr class="separator:a076f62b9b6082260462e18ca77c64e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af23ab23c93eb09eac0e15a87f5690bda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *parent, int index)</td></tr>
+<tr class="memdesc:af23ab23c93eb09eac0e15a87f5690bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.  <a href="#af23ab23c93eb09eac0e15a87f5690bda">More...</a><br /></td></tr>
+<tr class="separator:af23ab23c93eb09eac0e15a87f5690bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add9c80240912b0c8d309cf7de94f5305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *primary, <a class="el" href="structguac__socket.html">guac_socket</a> *secondary)</td></tr>
+<tr class="memdesc:add9c80240912b0c8d309cf7de94f5305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket.  <a href="#add9c80240912b0c8d309cf7de94f5305">More...</a><br /></td></tr>
+<tr class="separator:add9c80240912b0c8d309cf7de94f5305"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  <a href="#a2b570fec1d86f1eb09e057d4bbed3be6">More...</a><br /></td></tr>
+<tr class="separator:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57a963e37377de2104c2d785980ff400"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int64_t i)</td></tr>
+<tr class="memdesc:a57a963e37377de2104c2d785980ff400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object.  <a href="#a57a963e37377de2104c2d785980ff400">More...</a><br /></td></tr>
+<tr class="separator:a57a963e37377de2104c2d785980ff400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *str)</td></tr>
+<tr class="memdesc:ad0cb48c7896361b522ae5a222a3b5efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object.  <a href="#ad0cb48c7896361b522ae5a222a3b5efc">More...</a><br /></td></tr>
+<tr class="separator:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7ec68bc42436ba316805718c292c510"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:ac7ec68bc42436ba316805718c292c510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object as base64- encoded data.  <a href="#ac7ec68bc42436ba316805718c292c510">More...</a><br /></td></tr>
+<tr class="separator:ac7ec68bc42436ba316805718c292c510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb6eb960de27526bc96e1f9af797e2c4"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:adb6eb960de27526bc96e1f9af797e2c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given data to the specified socket.  <a href="#adb6eb960de27526bc96e1f9af797e2c4">More...</a><br /></td></tr>
+<tr class="separator:adb6eb960de27526bc96e1f9af797e2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:af5d6846212d792c5bce7f8a4fd46cd31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer.  <a href="#af5d6846212d792c5bce7f8a4fd46cd31">More...</a><br /></td></tr>
+<tr class="separator:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09d5f60d75c57640a4c483d42445c1ab"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a09d5f60d75c57640a4c483d42445c1ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the base64 buffer, writing padding characters as necessary.  <a href="#a09d5f60d75c57640a4c483d42445c1ab">More...</a><br /></td></tr>
+<tr class="separator:a09d5f60d75c57640a4c483d42445c1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ababc834d5812e006b55a79da417bfe12"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:ababc834d5812e006b55a79da417bfe12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the write buffer.  <a href="#ababc834d5812e006b55a79da417bfe12">More...</a><br /></td></tr>
+<tr class="separator:ababc834d5812e006b55a79da417bfe12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object until the specified timeout elapses.  <a href="#a41b0d7a25ccda3d0ae20143880cf53b7">More...</a><br /></td></tr>
+<tr class="separator:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object and functionss for using and manipulating it. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a7e5859b812923b894779f59353fdadb4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e5859b812923b894779f59353fdadb4">&#9670;&nbsp;</a></span>guac_socket_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. </p>
+<p>This <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will do absolutely nothing when used unless its handlers are defined.</p>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, or NULL if the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> could not be allocated. </dd></dl>
+
+</div>
+</div>
+<a id="a2b570fec1d86f1eb09e057d4bbed3be6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b570fec1d86f1eb09e057d4bbed3be6">&#9670;&nbsp;</a></span>guac_socket_broadcast()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_broadcast </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+<p>The returned socket is a write-only socket. Attempts to read from the socket will fail. If a write occurs while no users are connected, that write will simply be dropped.</p>
+<p>Return values (error codes) from each user's socket will not affect the in-progress write, but each failing user will be forcibly stopped with <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf" title="Signals the given user that it must disconnect, or advises cooperating services that the given user i...">guac_user_stop()</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client associated with the group of connected users across which duplicates of all instructions should be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A write-only <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object which broadcasts copies of all instructions written across all connected users of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="ababc834d5812e006b55a79da417bfe12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ababc834d5812e006b55a79da417bfe12">&#9670;&nbsp;</a></span>guac_socket_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the write buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a09d5f60d75c57640a4c483d42445c1ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09d5f60d75c57640a4c483d42445c1ab">&#9670;&nbsp;</a></span>guac_socket_flush_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the base64 buffer, writing padding characters as necessary. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a376df8efcc02a7104504f104433884ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a376df8efcc02a7104504f104433884ed">&#9670;&nbsp;</a></span>guac_socket_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a00c8f00ab54c42e42c9f489caf5478b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00c8f00ab54c42e42c9f489caf5478b1">&#9670;&nbsp;</a></span>guac_socket_instruction_begin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_begin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the beginning of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> beginning an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a603c23b24e2e2e95eeb2ce08d8115e94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a603c23b24e2e2e95eeb2ce08d8115e94">&#9670;&nbsp;</a></span>guac_socket_instruction_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> ending an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af23ab23c93eb09eac0e15a87f5690bda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af23ab23c93eb09eac0e15a87f5690bda">&#9670;&nbsp;</a></span>guac_socket_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> has no effect on the underlying, nested <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parent</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> this new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> should write nest instructions to. </td></tr>
+    <tr><td class="paramname">index</td><td>The stream index to use for the written nest instructions. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object associated with the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> and stream index, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="a076f62b9b6082260462e18ca77c64e7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a076f62b9b6082260462e18ca77c64e7a">&#9670;&nbsp;</a></span>guac_socket_open()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object with the given open file descriptor. </p>
+<p>The file descriptor will be automatically closed when the allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> is freed.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fd</td><td>An open file descriptor that this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object should manage. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object associated with the given file descriptor, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="af5d6846212d792c5bce7f8a4fd46cd31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5d6846212d792c5bce7f8a4fd46cd31">&#9670;&nbsp;</a></span>guac_socket_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The buffer to read bytes into. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or non-zero if an error occurs while reading. </dd></dl>
+
+</div>
+</div>
+<a id="a1d8c5111a8234c7785ae23f379f7db03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d8c5111a8234c7785ae23f379f7db03">&#9670;&nbsp;</a></span>guac_socket_require_keep_alive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_require_keep_alive </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open. </p>
+<p>This ping will take the form of a "nop" instruction.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to declare as requiring an automatic keep-alive ping. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a41b0d7a25ccda3d0ae20143880cf53b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41b0d7a25ccda3d0ae20143880cf53b7">&#9670;&nbsp;</a></span>guac_socket_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_socket_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object until the specified timeout elapses. </p>
+<p>If an error occurs while waiting, a negative value is returned, and guac_error is set appropriately.</p>
+<p>If a timeout occurs while waiting, zero value is returned, and guac_error is set to GUAC_STATUS_INPUT_TIMEOUT.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to wait for. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="add9c80240912b0c8d309cf7de94f5305"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add9c80240912b0c8d309cf7de94f5305">&#9670;&nbsp;</a></span>guac_socket_tee()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_tee </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>primary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>secondary</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will free both primary and secondary sockets.</p>
+<p>Return values (error codes) will come only from the primary socket. Locks (like those used by <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction.">guac_socket_instruction_begin()</a> and <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction.">guac_socket_instruction_end()</a>) will affect only the primary socket.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">primary</td><td>The primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to which all socket operations should be delegated. The error codes returned by socket operations, if any, will always come from this socket. This socket will also be the only socket locked when instructions begin (or unlocked when instructions end).</td></tr>
+    <tr><td class="paramname">secondary</td><td>The secondary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> to which all data written to the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> should be copied. If an error prevents the write from succeeding, that error will be ignored. Only errors from the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will be acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object associated with the given primary and secondary sockets, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="adb6eb960de27526bc96e1f9af797e2c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb6eb960de27526bc96e1f9af797e2c4">&#9670;&nbsp;</a></span>guac_socket_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given data to the specified socket. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ac7ec68bc42436ba316805718c292c510"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7ec68bc42436ba316805718c292c510">&#9670;&nbsp;</a></span>guac_socket_write_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object as base64- encoded data. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually. Beware that, because base64 data is buffered on top of the write buffer already used, a call to <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab" title="Flushes the base64 buffer, writing padding characters as necessary.">guac_socket_flush_base64()</a> MUST be made before non-base64 writes (or writes of an independent block of base64 data) can be made.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="a57a963e37377de2104c2d785980ff400"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57a963e37377de2104c2d785980ff400">&#9670;&nbsp;</a></span>guac_socket_write_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int64_t&#160;</td>
+          <td class="paramname"><em>i</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">i</td><td>The unsigned int to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ad0cb48c7896361b522ae5a222a3b5efc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0cb48c7896361b522ae5a222a3b5efc">&#9670;&nbsp;</a></span>guac_socket_write_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">str</td><td>The string to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/socket_8h_source.html b/doc/1.3.0/libguac/socket_8h_source.html
new file mode 100644
index 0000000..d4cca27
--- /dev/null
+++ b/doc/1.3.0/libguac/socket_8h_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-constants_8h.html">socket-constants.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-fntypes_8h.html">socket-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__socket.html">   39</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">   44</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">   49</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>* <a class="code" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">   54</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>* <a class="code" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">   59</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>* <a class="code" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">   65</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>* <a class="code" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">   71</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>* <a class="code" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">   77</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>* <a class="code" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">   82</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>* <a class="code" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">   87</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> <a class="code" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">   93</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a>;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">int</span> __ready;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">int</span> __ready_buf[3];</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">int</span> __keep_alive_enabled;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    pthread_t __keep_alive_thread;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a>();</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a>(<span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* parent, <span class="keywordtype">int</span> index);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* primary, <a class="code" href="structguac__socket.html">guac_socket</a>* secondary);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;ssize_t <a class="code" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, int64_t i);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;ssize_t <a class="code" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;ssize_t <a class="code" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;ssize_t <a class="code" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;ssize_t <a class="code" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;ssize_t <a class="code" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;ssize_t <a class="code" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="keywordtype">int</span> <a class="code" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket.</div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket_8h_html_af23ab23c93eb09eac0e15a87f5690bda"><div class="ttname"><a href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a></div><div class="ttdeci">guac_socket * guac_socket_nest(guac_socket *parent, int index)</div><div class="ttdoc">Allocates and initializes a new guac_socket which writes all data via nest instructions to the given ...</div></div>
+<div class="ttc" id="socket_8h_html_a09d5f60d75c57640a4c483d42445c1ab"><div class="ttname"><a href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a></div><div class="ttdeci">ssize_t guac_socket_flush_base64(guac_socket *socket)</div><div class="ttdoc">Flushes the base64 buffer, writing padding characters as necessary.</div></div>
+<div class="ttc" id="structguac__socket_html_a1044cde496cfe11c914c623dc1e29678"><div class="ttname"><a href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket::free_handler</a></div><div class="ttdeci">guac_socket_free_handler * free_handler</div><div class="ttdoc">Handler which will be called when the socket is free'd (closed).</div><div class="ttdef"><b>Definition:</b> socket.h:82</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="socket_8h_html_a00c8f00ab54c42e42c9f489caf5478b1"><div class="ttname"><a href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a></div><div class="ttdeci">void guac_socket_instruction_begin(guac_socket *socket)</div><div class="ttdoc">Marks the beginning of a Guacamole protocol instruction.</div></div>
+<div class="ttc" id="socket_8h_html_a2b570fec1d86f1eb09e057d4bbed3be6"><div class="ttname"><a href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a></div><div class="ttdeci">guac_socket * guac_socket_broadcast(guac_client *client)</div><div class="ttdoc">Allocates and initializes a new guac_socket which duplicates all instructions written across the sock...</div></div>
+<div class="ttc" id="socket-constants_8h_html"><div class="ttname"><a href="socket-constants_8h.html">socket-constants.h</a></div><div class="ttdoc">Constants related to the guac_socket object.</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html"><div class="ttname"><a href="socket-fntypes_8h.html">socket-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="structguac__socket_html_a1d39f1476d3d3440485697a0eabfe471"><div class="ttname"><a href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket::lock_handler</a></div><div class="ttdeci">guac_socket_lock_handler * lock_handler</div><div class="ttdoc">Handler which will be called whenever a socket needs to be acquired for exclusive access,...</div><div class="ttdef"><b>Definition:</b> socket.h:65</div></div>
+<div class="ttc" id="socket_8h_html_a376df8efcc02a7104504f104433884ed"><div class="ttname"><a href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a></div><div class="ttdeci">void guac_socket_free(guac_socket *socket)</div><div class="ttdoc">Frees the given guac_socket and all associated resources.</div></div>
+<div class="ttc" id="socket_8h_html_a076f62b9b6082260462e18ca77c64e7a"><div class="ttname"><a href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a></div><div class="ttdeci">guac_socket * guac_socket_open(int fd)</div><div class="ttdoc">Allocates and initializes a new guac_socket object with the given open file descriptor.</div></div>
+<div class="ttc" id="socket_8h_html_ad0cb48c7896361b522ae5a222a3b5efc"><div class="ttname"><a href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a></div><div class="ttdeci">ssize_t guac_socket_write_string(guac_socket *socket, const char *str)</div><div class="ttdoc">Writes the given string to the given guac_socket object.</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="structguac__socket_html_a0f5f24200b0dad4ef1443b863d1bfc7d"><div class="ttname"><a href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket::write_handler</a></div><div class="ttdeci">guac_socket_write_handler * write_handler</div><div class="ttdoc">Handler which will be called whenever data is written to this socket.</div><div class="ttdef"><b>Definition:</b> socket.h:54</div></div>
+<div class="ttc" id="socket_8h_html_ac7ec68bc42436ba316805718c292c510"><div class="ttname"><a href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a></div><div class="ttdeci">ssize_t guac_socket_write_base64(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given binary data to the given guac_socket object as base64- encoded data.</div></div>
+<div class="ttc" id="structguac__socket_html_ac2d5236c7e570dfee207511241edaa9b"><div class="ttname"><a href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket::state</a></div><div class="ttdeci">guac_socket_state state</div><div class="ttdoc">The current state of this guac_socket.</div><div class="ttdef"><b>Definition:</b> socket.h:87</div></div>
+<div class="ttc" id="socket_8h_html_af5d6846212d792c5bce7f8a4fd46cd31"><div class="ttname"><a href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a></div><div class="ttdeci">ssize_t guac_socket_read(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffe...</div></div>
+<div class="ttc" id="structguac__socket_html_a67be8367b5e1b330ee151b22c692500b"><div class="ttname"><a href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket::unlock_handler</a></div><div class="ttdeci">guac_socket_unlock_handler * unlock_handler</div><div class="ttdoc">Handler which will be called whenever exclusive access to a socket is being released,...</div><div class="ttdef"><b>Definition:</b> socket.h:71</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket_8h_html_adb6eb960de27526bc96e1f9af797e2c4"><div class="ttname"><a href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a></div><div class="ttdeci">ssize_t guac_socket_write(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given data to the specified socket.</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="structguac__socket_html_afc6ff82e38b84c9e876fd797aafedd1b"><div class="ttname"><a href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket::flush_handler</a></div><div class="ttdeci">guac_socket_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called whenever this socket needs to be flushed.</div><div class="ttdef"><b>Definition:</b> socket.h:59</div></div>
+<div class="ttc" id="structguac__socket_html_adf00e9c13ff3808fceb4c71c1172fb51"><div class="ttname"><a href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket::last_write_timestamp</a></div><div class="ttdeci">guac_timestamp last_write_timestamp</div><div class="ttdoc">The timestamp associated with the time the last block of data was written to this guac_socket.</div><div class="ttdef"><b>Definition:</b> socket.h:93</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="socket_8h_html_a603c23b24e2e2e95eeb2ce08d8115e94"><div class="ttname"><a href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a></div><div class="ttdeci">void guac_socket_instruction_end(guac_socket *socket)</div><div class="ttdoc">Marks the end of a Guacamole protocol instruction.</div></div>
+<div class="ttc" id="socket_8h_html_a7e5859b812923b894779f59353fdadb4"><div class="ttname"><a href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a></div><div class="ttdeci">guac_socket * guac_socket_alloc()</div><div class="ttdoc">Allocates a new, completely blank guac_socket.</div></div>
+<div class="ttc" id="socket_8h_html_a41b0d7a25ccda3d0ae20143880cf53b7"><div class="ttname"><a href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a></div><div class="ttdeci">int guac_socket_select(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Waits for input to be available on the given guac_socket object until the specified timeout elapses.</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="structguac__socket_html_ad29e7f8a6819ca7bb541e8a947d5bc4f"><div class="ttname"><a href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket::select_handler</a></div><div class="ttdeci">guac_socket_select_handler * select_handler</div><div class="ttdoc">Handler which will be called whenever guac_socket_select() is invoked on this socket.</div><div class="ttdef"><b>Definition:</b> socket.h:77</div></div>
+<div class="ttc" id="socket_8h_html_a1d8c5111a8234c7785ae23f379f7db03"><div class="ttname"><a href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a></div><div class="ttdeci">void guac_socket_require_keep_alive(guac_socket *socket)</div><div class="ttdoc">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of th...</div></div>
+<div class="ttc" id="socket_8h_html_ababc834d5812e006b55a79da417bfe12"><div class="ttname"><a href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a></div><div class="ttdeci">ssize_t guac_socket_flush(guac_socket *socket)</div><div class="ttdoc">Flushes the write buffer.</div></div>
+<div class="ttc" id="socket_8h_html_a57a963e37377de2104c2d785980ff400"><div class="ttname"><a href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a></div><div class="ttdeci">ssize_t guac_socket_write_int(guac_socket *socket, int64_t i)</div><div class="ttdoc">Writes the given unsigned int to the given guac_socket object.</div></div>
+<div class="ttc" id="socket_8h_html_add9c80240912b0c8d309cf7de94f5305"><div class="ttname"><a href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a></div><div class="ttdeci">guac_socket * guac_socket_tee(guac_socket *primary, guac_socket *secondary)</div><div class="ttdoc">Allocates and initializes a new guac_socket which delegates all socket operations to the given primar...</div></div>
+<div class="ttc" id="structguac__socket_html_ac8340e5627b43138bb50aac6c4368c0d"><div class="ttname"><a href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary socket-specific data.</div><div class="ttdef"><b>Definition:</b> socket.h:44</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function.</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+<div class="ttc" id="structguac__socket_html_a10042a8e591737aec8d4db5a3423b250"><div class="ttname"><a href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket::read_handler</a></div><div class="ttdeci">guac_socket_read_handler * read_handler</div><div class="ttdoc">Handler which will be called when data needs to be read from the socket.</div><div class="ttdef"><b>Definition:</b> socket.h:49</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/splitbar.png b/doc/1.3.0/libguac/splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/doc/1.3.0/libguac/splitbar.png
Binary files differ
diff --git a/doc/1.3.0/libguac/stream-types_8h.html b/doc/1.3.0/libguac/stream-types_8h.html
new file mode 100644
index 0000000..649eb6d
--- /dev/null
+++ b/doc/1.3.0/libguac/stream-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/stream-types_8h_source.html b/doc/1.3.0/libguac/stream-types_8h_source.html
new file mode 100644
index 0000000..c8efc7c
--- /dev/null
+++ b/doc/1.3.0/libguac/stream-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> <a class="code" href="structguac__stream.html">guac_stream</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/stream_8h.html b/doc/1.3.0/libguac/stream_8h.html
new file mode 100644
index 0000000..6329e63
--- /dev/null
+++ b/doc/1.3.0/libguac/stream_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">stream.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html">guac_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single stream within the Guacamole protocol.  <a href="structguac__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/stream_8h_source.html b/doc/1.3.0/libguac/stream_8h_source.html
new file mode 100644
index 0000000..ec7143a
--- /dev/null
+++ b/doc/1.3.0/libguac/stream_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__stream.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">   67</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">   87</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">  106</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="ttc" id="structguac__stream_html_acdf20063ca408431862d901c9445b429"><div class="ttname"><a href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this stream.</div><div class="ttdef"><b>Definition:</b> stream.h:42</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="structguac__stream_html_a51122ba04f416d8ce047542c603632f8"><div class="ttname"><a href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> stream.h:87</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="structguac__stream_html_acd077c7266d10871ee1e07951dfa72ff"><div class="ttname"><a href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> stream.h:67</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__stream_html_a96fef1b691d5c5ebaf78bff6df3b01db"><div class="ttname"><a href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> stream.h:106</div></div>
+<div class="ttc" id="structguac__stream_html_a487951c2cc77b2e1637e3aa0b5faaa60"><div class="ttname"><a href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this stream.</div><div class="ttdef"><b>Definition:</b> stream.h:37</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/string_8h.html b/doc/1.3.0/libguac/string_8h.html
new file mode 100644
index 0000000..38ba2ec
--- /dev/null
+++ b/doc/1.3.0/libguac/string_8h.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">string.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides convenience functions for manipulating strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="string_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:add551909cdd14d762106832a800a5e16"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:add551909cdd14d762106832a800a5e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a limited number of bytes from the given source string to the given destination buffer.  <a href="#add551909cdd14d762106832a800a5e16">More...</a><br /></td></tr>
+<tr class="separator:add551909cdd14d762106832a800a5e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dccfb28be71414fb2a4b1b641799f57"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:a0dccfb28be71414fb2a4b1b641799f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the given source string after the end of the given destination string, writing at most the given number of bytes.  <a href="#a0dccfb28be71414fb2a4b1b641799f57">More...</a><br /></td></tr>
+<tr class="separator:a0dccfb28be71414fb2a4b1b641799f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bdb37675eaa549efb6b5691821e8d6b"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b">guac_strdup</a> (const char *str)</td></tr>
+<tr class="memdesc:a9bdb37675eaa549efb6b5691821e8d6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple wrapper for strdup() which behaves identically to standard strdup(), except that NULL will be returned if the provided string is NULL.  <a href="#a9bdb37675eaa549efb6b5691821e8d6b">More...</a><br /></td></tr>
+<tr class="separator:a9bdb37675eaa549efb6b5691821e8d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a> (char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</td></tr>
+<tr class="memdesc:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer.  <a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">More...</a><br /></td></tr>
+<tr class="separator:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides convenience functions for manipulating strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a9bdb37675eaa549efb6b5691821e8d6b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9bdb37675eaa549efb6b5691821e8d6b">&#9670;&nbsp;</a></span>guac_strdup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_strdup </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Simple wrapper for strdup() which behaves identically to standard strdup(), except that NULL will be returned if the provided string is NULL. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>The string to duplicate as a newly-allocated string.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated string containing identically the same content as the given string, or NULL if the given string was NULL. </dd></dl>
+
+</div>
+</div>
+<a id="a0dccfb28be71414fb2a4b1b641799f57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0dccfb28be71414fb2a4b1b641799f57">&#9670;&nbsp;</a></span>guac_strlcat()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcat </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends the given source string after the end of the given destination string, writing at most the given number of bytes. </p>
+<p>Both the source and destination strings MUST be null-terminated. The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of destination and source strings added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should be appended with the contents of the source string. This buffer MUST already be null-terminated and will always be null-terminated unless zero bytes are available within the buffer.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>As a safeguard against incorrectly-written code, in the event that the destination buffer is not null-terminated, this function will still stop before overrunning the buffer, instead behaving as if the length of the string in the buffer is exactly the size of the buffer. The destination buffer will remain untouched (and unterminated) in this case.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">src</td><td>The source string to append to the the destination buffer. This string MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null-terminated. In all other cases, the destination buffer will always be null-terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the lengths of the source and destination strings added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="add551909cdd14d762106832a800a5e16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add551909cdd14d762106832a800a5e16">&#9670;&nbsp;</a></span>guac_strlcpy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcpy </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Copies a limited number of bytes from the given source string to the given destination buffer. </p>
+<p>The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of the source string), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the contents of the source string. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">src</td><td>The source string to copy into the destination buffer. This string MUST be null terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the copied string (the source string) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="a186ea73f38cfaf14f8a5b13ad7e9724f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">&#9670;&nbsp;</a></span>guac_strljoin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strljoin </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict const *&#160;</td>
+          <td class="paramname"><em>elements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nmemb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>delim</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer. </p>
+<p>The number of bytes written will be no more than the given number of bytes, and the destination buffer is guaranteed to be null-terminated, even if doing so means that one or more of the intended strings are truncated or omitted from the end of the result, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of all source strings and all delimiters added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source strings, delimiter string, and destination buffer MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the result of joining the given strings. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">elements</td><td>The elements to concatenate together, separated by the given delimiter. Each element MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">nmemb</td><td>The number of elements within the elements array.</td></tr>
+    <tr><td class="paramname">delim</td><td>The delimiter to include between each pair of elements.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the result will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the length of all source strings and all delimiters added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/string_8h_source.html b/doc/1.3.0/libguac/string_8h_source.html
new file mode 100644
index 0000000..c2ae198
--- /dev/null
+++ b/doc/1.3.0/libguac/string_8h_source.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">string.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="string_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_STRING_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_STRING_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="string_8h.html">string.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b">guac_strdup</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict <span class="keyword">const</span>* elements,</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;        <span class="keywordtype">int</span> nmemb, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict delim, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Provides convenience functions for manipulating strings.</div></div>
+<div class="ttc" id="string_8h_html_a9bdb37675eaa549efb6b5691821e8d6b"><div class="ttname"><a href="string_8h.html#a9bdb37675eaa549efb6b5691821e8d6b">guac_strdup</a></div><div class="ttdeci">char * guac_strdup(const char *str)</div><div class="ttdoc">Simple wrapper for strdup() which behaves identically to standard strdup(), except that NULL will be ...</div></div>
+<div class="ttc" id="string_8h_html_a186ea73f38cfaf14f8a5b13ad7e9724f"><div class="ttname"><a href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a></div><div class="ttdeci">size_t guac_strljoin(char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</div><div class="ttdoc">Concatenates each of the given strings, separated by the given delimiter, storing the result within a...</div></div>
+<div class="ttc" id="string_8h_html_add551909cdd14d762106832a800a5e16"><div class="ttname"><a href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a></div><div class="ttdeci">size_t guac_strlcpy(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Copies a limited number of bytes from the given source string to the given destination buffer.</div></div>
+<div class="ttc" id="string_8h_html_a0dccfb28be71414fb2a4b1b641799f57"><div class="ttname"><a href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a></div><div class="ttdeci">size_t guac_strlcat(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Appends the given source string after the end of the given destination string, writing at most the gi...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__audio__encoder.html b/doc/1.3.0/libguac/structguac__audio__encoder.html
new file mode 100644
index 0000000..b08cd77
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__audio__encoder.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_encoder Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_encoder Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Arbitrary audio codec encoder.  
+ <a href="structguac__audio__encoder.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a51b8bfeae3709c1859710cbf1039e01b"><td class="memItemLeft" align="right" valign="top"><a id="a51b8bfeae3709c1859710cbf1039e01b"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a></td></tr>
+<tr class="memdesc:a51b8bfeae3709c1859710cbf1039e01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of the audio data encoded by this audio encoder. <br /></td></tr>
+<tr class="separator:a51b8bfeae3709c1859710cbf1039e01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memItemLeft" align="right" valign="top"><a id="a43d161556d3d55031ea486cc8b4ce3f6"></a>
+<a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a></td></tr>
+<tr class="memdesc:a43d161556d3d55031ea486cc8b4ce3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is first created. <br /></td></tr>
+<tr class="separator:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memItemLeft" align="right" valign="top"><a id="a1b74c3dd402b0a6afa5f5b9000d02c74"></a>
+<a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a></td></tr>
+<tr class="memdesc:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when PCM data is written to the audio stream for encoding. <br /></td></tr>
+<tr class="separator:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memItemLeft" align="right" valign="top"><a id="aef4ad4f1c298ac8e11fa69f13347c5a0"></a>
+<a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a></td></tr>
+<tr class="memdesc:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is flushed. <br /></td></tr>
+<tr class="separator:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memItemLeft" align="right" valign="top"><a id="a6fbc4f8efe14c9a119fdfaaef78f7e92"></a>
+<a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a></td></tr>
+<tr class="memdesc:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is closed. <br /></td></tr>
+<tr class="separator:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memItemLeft" align="right" valign="top"><a id="af2d0f6c14a6a30e4f91240865a680e5b"></a>
+<a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a></td></tr>
+<tr class="memdesc:af2d0f6c14a6a30e4f91240865a680e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when a new user joins the Guacamole connection associated with an audio stream. <br /></td></tr>
+<tr class="separator:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Arbitrary audio codec encoder. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__audio__stream.html b/doc/1.3.0/libguac/structguac__audio__stream.html
new file mode 100644
index 0000000..e9007ed
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__audio__stream.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Basic audio stream.  
+ <a href="structguac__audio__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af3b4811ba5a4f1a337d338777fe9049d"><td class="memItemLeft" align="right" valign="top"><a id="af3b4811ba5a4f1a337d338777fe9049d"></a>
+<a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a></td></tr>
+<tr class="memdesc:af3b4811ba5a4f1a337d338777fe9049d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary codec encoder which will receive raw PCM data. <br /></td></tr>
+<tr class="separator:af3b4811ba5a4f1a337d338777fe9049d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memItemLeft" align="right" valign="top"><a id="a1771fa5ff88b8f5d4ca4cd5e77a1ffba"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a></td></tr>
+<tr class="memdesc:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The client associated with this audio stream. <br /></td></tr>
+<tr class="separator:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memItemLeft" align="right" valign="top"><a id="a4d8f5cfc70ec54b97ba0c4eea596f894"></a>
+<a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a></td></tr>
+<tr class="memdesc:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="mdescLeft">&#160;</td><td class="mdescRight">The actual stream associated with this audio stream. <br /></td></tr>
+<tr class="separator:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6810293a6fa915e497d2dd1a643993d9"><td class="memItemLeft" align="right" valign="top"><a id="a6810293a6fa915e497d2dd1a643993d9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a></td></tr>
+<tr class="memdesc:a6810293a6fa915e497d2dd1a643993d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of samples per second of PCM data sent to this stream. <br /></td></tr>
+<tr class="separator:a6810293a6fa915e497d2dd1a643993d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a></td></tr>
+<tr class="memdesc:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of audio channels per sample of PCM data.  <a href="#af9d1ad90194e24c2967e2f9f18de0ad6">More...</a><br /></td></tr>
+<tr class="separator:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1de1be8874fb844002b92ac1e3813866"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a></td></tr>
+<tr class="memdesc:a1de1be8874fb844002b92ac1e3813866"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bits per sample per channel for PCM data.  <a href="#a1de1be8874fb844002b92ac1e3813866">More...</a><br /></td></tr>
+<tr class="separator:a1de1be8874fb844002b92ac1e3813866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memItemLeft" align="right" valign="top"><a id="a9ca03221b02d1206eb698f8ee936c4b7"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a></td></tr>
+<tr class="memdesc:a9ca03221b02d1206eb698f8ee936c4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder-specific state data. <br /></td></tr>
+<tr class="separator:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Basic audio stream. </p>
+<p>PCM data is added to the stream. When the stream is flushed, a write handler receives PCM data packets and, presumably, streams them to the <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> provided. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a1de1be8874fb844002b92ac1e3813866"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1de1be8874fb844002b92ac1e3813866">&#9670;&nbsp;</a></span>bps</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::bps</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of bits per sample per channel for PCM data. </p>
+<p>Legal values are 8 or 16. </p>
+
+</div>
+</div>
+<a id="af9d1ad90194e24c2967e2f9f18de0ad6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9d1ad90194e24c2967e2f9f18de0ad6">&#9670;&nbsp;</a></span>channels</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::channels</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of audio channels per sample of PCM data. </p>
+<p>Legal values are 1 or 2. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__client.html b/doc/1.3.0/libguac/structguac__client.html
new file mode 100644
index 0000000..1dd598f
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__client.html
@@ -0,0 +1,313 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_client Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_client Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Guacamole proxy client.  
+ <a href="structguac__client.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aa634856fd3c522377ba7345f3308000e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a></td></tr>
+<tr class="memdesc:aa634856fd3c522377ba7345f3308000e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> structure to be used to communicate with all connected web-clients (users).  <a href="#aa634856fd3c522377ba7345f3308000e">More...</a><br /></td></tr>
+<tr class="separator:aa634856fd3c522377ba7345f3308000e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a></td></tr>
+<tr class="memdesc:acb3e3f5d0ce5726cdde768f97b473f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the client.  <a href="#acb3e3f5d0ce5726cdde768f97b473f53">More...</a><br /></td></tr>
+<tr class="separator:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a></td></tr>
+<tr class="memdesc:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary reference to proxy client-specific data.  <a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">More...</a><br /></td></tr>
+<tr class="separator:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f3069566c7a5ca76ce4369715589dad"><td class="memItemLeft" align="right" valign="top"><a id="a0f3069566c7a5ca76ce4369715589dad"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a></td></tr>
+<tr class="memdesc:a0f3069566c7a5ca76ce4369715589dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) that the last sync message was sent to the client. <br /></td></tr>
+<tr class="separator:a0f3069566c7a5ca76ce4369715589dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79e29c931fd448cf51f7153fea064169"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a></td></tr>
+<tr class="memdesc:a79e29c931fd448cf51f7153fea064169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing data when the client is being unloaded.  <a href="#a79e29c931fd448cf51f7153fea064169">More...</a><br /></td></tr>
+<tr class="separator:a79e29c931fd448cf51f7153fea064169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a></td></tr>
+<tr class="memdesc:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging handler.  <a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">More...</a><br /></td></tr>
+<tr class="separator:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a></td></tr>
+<tr class="memdesc:ad38b9ded1f04bfe8eb235e551fc08094"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection.  <a href="#ad38b9ded1f04bfe8eb235e551fc08094">More...</a><br /></td></tr>
+<tr class="separator:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a></td></tr>
+<tr class="memdesc:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of currently-connected users.  <a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">More...</a><br /></td></tr>
+<tr class="separator:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a></td></tr>
+<tr class="memdesc:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for join events, called whenever a new user is joining an active connection.  <a href="#a0adcf1953de6c315c2da9dac4b3eceb3">More...</a><br /></td></tr>
+<tr class="separator:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad956a3935832e9048a2727d8c5a46cf6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a></td></tr>
+<tr class="memdesc:ad956a3935832e9048a2727d8c5a46cf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events, called whenever a new user is leaving an active connection.  <a href="#ad956a3935832e9048a2727d8c5a46cf6">More...</a><br /></td></tr>
+<tr class="separator:ad956a3935832e9048a2727d8c5a46cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e07a8086579ede2c692460998a87cac"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a></td></tr>
+<tr class="memdesc:a0e07a8086579ede2c692460998a87cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of all arguments accepted by this client , in order.  <a href="#a0e07a8086579ede2c692460998a87cac">More...</a><br /></td></tr>
+<tr class="separator:a0e07a8086579ede2c692460998a87cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Guacamole proxy client. </p>
+<p>Represents a Guacamole proxy client (the client which communicates to a server on behalf of Guacamole, on behalf of the web-client). </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e07a8086579ede2c692460998a87cac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e07a8086579ede2c692460998a87cac">&#9670;&nbsp;</a></span>args</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_client::args</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of all arguments accepted by this client , in order. </p>
+<p>New users will specify these arguments when they join the connection, and the values of those arguments will be made available to the function initializing newly-joined users.</p>
+<p>The guac_client_init entry point is expected to initialize this, if arguments are expected.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* __my_args[] = {</div><div class="line">    <span class="stringliteral">&quot;hostname&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;port&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;username&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;password&quot;</span>,</div><div class="line">    NULL</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a> = __my_args;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a73aeff08af6cf6cadd7abce74c7ff4b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">&#9670;&nbsp;</a></span>connected_users</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client::connected_users</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of currently-connected users. </p>
+<p>This value may include inactive users if cleanup of those users has not yet finished. </p>
+
+</div>
+</div>
+<a id="ad38b9ded1f04bfe8eb235e551fc08094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad38b9ded1f04bfe8eb235e551fc08094">&#9670;&nbsp;</a></span>connection_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_client::connection_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<a id="a0569bc7eea8d37b5bd95bcd3821ca0a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">&#9670;&nbsp;</a></span>data</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client::data</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Arbitrary reference to proxy client-specific data. </p>
+<p>Implementors of a Guacamole proxy client can store any data they want here, which can then be retrieved as necessary in the message handlers. </p>
+
+</div>
+</div>
+<a id="a79e29c931fd448cf51f7153fea064169"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79e29c931fd448cf51f7153fea064169">&#9670;&nbsp;</a></span>free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* guac_client::free_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing data when the client is being unloaded. </p>
+<p>This handler will be called when the client needs to be unloaded by the proxy, and any data allocated by the proxy client should be freed.</p>
+<p>Note that this handler will NOT be called if the client's guac_client_init() function fails.</p>
+<p>Implement this handler if you store data inside the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a> = <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0adcf1953de6c315c2da9dac4b3eceb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0adcf1953de6c315c2da9dac4b3eceb3">&#9670;&nbsp;</a></span>join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* guac_client::join_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for join events, called whenever a new user is joining an active connection. </p>
+<p>Note that because users may leave the connection at any time, a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> can become invalid at any time and should never be maintained outside the scope of a function invoked by libguac to which that <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> was passed (the scope in which the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> reference is guaranteed to be valid) UNLESS that reference is properly invalidated within the leave_handler.</p>
+<p>The handler is given a pointer to a newly-allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> which must then be initialized, if needed.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a> = <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ad956a3935832e9048a2727d8c5a46cf6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad956a3935832e9048a2727d8c5a46cf6">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_client::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events, called whenever a new user is leaving an active connection. </p>
+<p>The handler is given a pointer to the leaving <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> whose custom data and associated resources must now be freed, if any.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a> = <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a3eb24ba13be9ecb3a8c6f64a73932f43"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">&#9670;&nbsp;</a></span>log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* guac_client::log_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Logging handler. </p>
+<p>This handler will be called via <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208" title="Writes a message in the log used by the given client.">guac_client_log()</a> when the client needs to log messages of any type.</p>
+<p>In general, only programs loading the client should implement this handler, as those are the programs that would provide the logging facilities.</p>
+<p>Client implementations should expect these handlers to already be set.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>);</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> function_of_daemon() {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__client.html">guac_client</a>* client = [pass <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a> to guac_client_plugin_get_client()];</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aa634856fd3c522377ba7345f3308000e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa634856fd3c522377ba7345f3308000e">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_client::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> structure to be used to communicate with all connected web-clients (users). </p>
+<p>Unlike the user-level <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>, this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> will broadcast instructions to all connected users simultaneously. It is expected that the implementor of any Guacamole proxy client will provide their own mechanism of I/O for their protocol. The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> structure is used only to communicate conveniently with the Guacamole web-client. </p>
+
+</div>
+</div>
+<a id="acb3e3f5d0ce5726cdde768f97b473f53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb3e3f5d0ce5726cdde768f97b473f53">&#9670;&nbsp;</a></span>state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> guac_client::state</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The current state of the client. </p>
+<p>When the client is first allocated, this will be initialized to GUAC_CLIENT_RUNNING. It will remain at GUAC_CLIENT_RUNNING until an event occurs which requires the client to shutdown, at which point the state becomes GUAC_CLIENT_STOPPING. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="client_8h_source.html">client.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__layer.html b/doc/1.3.0/libguac/structguac__layer.html
new file mode 100644
index 0000000..86be8f4
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__layer.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_layer Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_layer Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single layer within the Guacamole protocol.  
+ <a href="structguac__layer.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memItemLeft" align="right" valign="top"><a id="a686a85d9d758ba5f2f4426a4c4ae13ba"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a></td></tr>
+<tr class="memdesc:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this layer. <br /></td></tr>
+<tr class="separator:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single layer within the Guacamole protocol. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="layer_8h_source.html">layer.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__object.html b/doc/1.3.0/libguac/structguac__object.html
new file mode 100644
index 0000000..9943bb4
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__object.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_object Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_object Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single object within the Guacamole protocol.  
+ <a href="structguac__object.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a643f03695d246bbf73b5c4942755a4b4"><td class="memItemLeft" align="right" valign="top"><a id="a643f03695d246bbf73b5c4942755a4b4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a></td></tr>
+<tr class="memdesc:a643f03695d246bbf73b5c4942755a4b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this object. <br /></td></tr>
+<tr class="separator:a643f03695d246bbf73b5c4942755a4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memItemLeft" align="right" valign="top"><a id="ac9ca62cec5ba1124f8272da3adf7c44e"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a></td></tr>
+<tr class="memdesc:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this object. <br /></td></tr>
+<tr class="separator:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e86747e4f1265935310f0df3a7f4b21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a></td></tr>
+<tr class="memdesc:a0e86747e4f1265935310f0df3a7f4b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#a0e86747e4f1265935310f0df3a7f4b21">More...</a><br /></td></tr>
+<tr class="separator:a0e86747e4f1265935310f0df3a7f4b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33771a9a72c560b8ea99f940c4c412a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a></td></tr>
+<tr class="memdesc:a33771a9a72c560b8ea99f940c4c412a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a33771a9a72c560b8ea99f940c4c412a6">More...</a><br /></td></tr>
+<tr class="separator:a33771a9a72c560b8ea99f940c4c412a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single object within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e86747e4f1265935310f0df3a7f4b21"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e86747e4f1265935310f0df3a7f4b21">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_object::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol.">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;get_handler = <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a33771a9a72c560b8ea99f940c4c412a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33771a9a72c560b8ea99f940c4c412a6">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_object::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol.">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;put_handler = <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="object_8h_source.html">object.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__parser.html b/doc/1.3.0/libguac/structguac__parser.html
new file mode 100644
index 0000000..8fc168c
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__parser.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_parser Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_parser Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  
+ <a href="structguac__parser.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memItemLeft" align="right" valign="top"><a id="a725767c57dc6f157afe2d7dd6ce281e1"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a></td></tr>
+<tr class="memdesc:a725767c57dc6f157afe2d7dd6ce281e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The opcode of the instruction. <br /></td></tr>
+<tr class="separator:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memItemLeft" align="right" valign="top"><a id="a718ce9e60c8414c367ce393cc4e0cffe"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a></td></tr>
+<tr class="memdesc:a718ce9e60c8414c367ce393cc4e0cffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memItemLeft" align="right" valign="top"><a id="a9bd5362b9de8cf2adfcdff2c86bb4701"></a>
+char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a></td></tr>
+<tr class="memdesc:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of all arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2773500f91b3cdb7de7bdea280228054"><td class="memItemLeft" align="right" valign="top"><a id="a2773500f91b3cdb7de7bdea280228054"></a>
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a></td></tr>
+<tr class="memdesc:a2773500f91b3cdb7de7bdea280228054"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parse state of the instruction. <br /></td></tr>
+<tr class="separator:a2773500f91b3cdb7de7bdea280228054"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="parser_8h_source.html">parser.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__pool.html b/doc/1.3.0/libguac/structguac__pool.html
new file mode 100644
index 0000000..602699b
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__pool.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A pool of integers.  
+ <a href="structguac__pool.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memItemLeft" align="right" valign="top"><a id="a71ed274c2481dbcd5e06bf7d8d74d71e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a></td></tr>
+<tr class="memdesc:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of integers which must have been returned by guac_pool_next_int before previously-used and freed integers are allowed to be returned. <br /></td></tr>
+<tr class="separator:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memItemLeft" align="right" valign="top"><a id="ac22871d5c476ca9a6dd25a2446fa0fd3"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a></td></tr>
+<tr class="memdesc:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of integers currently in use. <br /></td></tr>
+<tr class="separator:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A pool of integers. </p>
+<p>Integers can be removed from and later free'd back into the pool. New integers are returned when the pool is exhausted, or when the pool has not met some minimum size. Old, free'd integers are returned otherwise. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__pool__int.html b/doc/1.3.0/libguac/structguac__pool__int.html
new file mode 100644
index 0000000..4332757
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__pool__int.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool_int Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool_int Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single integer within a larger pool of integers.  
+ <a href="structguac__pool__int.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memItemLeft" align="right" valign="top"><a id="af76ff5f21c6e0f69d95cdd1385ea24a4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a></td></tr>
+<tr class="memdesc:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The integer value of this pool entry. <br /></td></tr>
+<tr class="separator:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single integer within a larger pool of integers. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__socket.html b/doc/1.3.0/libguac/structguac__socket.html
new file mode 100644
index 0000000..71f7613
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__socket.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The core I/O object of Guacamole.  
+ <a href="structguac__socket.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac8340e5627b43138bb50aac6c4368c0d"><td class="memItemLeft" align="right" valign="top"><a id="ac8340e5627b43138bb50aac6c4368c0d"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a></td></tr>
+<tr class="memdesc:ac8340e5627b43138bb50aac6c4368c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary socket-specific data. <br /></td></tr>
+<tr class="separator:ac8340e5627b43138bb50aac6c4368c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10042a8e591737aec8d4db5a3423b250"><td class="memItemLeft" align="right" valign="top"><a id="a10042a8e591737aec8d4db5a3423b250"></a>
+<a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a></td></tr>
+<tr class="memdesc:a10042a8e591737aec8d4db5a3423b250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when data needs to be read from the socket. <br /></td></tr>
+<tr class="separator:a10042a8e591737aec8d4db5a3423b250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memItemLeft" align="right" valign="top"><a id="a0f5f24200b0dad4ef1443b863d1bfc7d"></a>
+<a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a></td></tr>
+<tr class="memdesc:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever data is written to this socket. <br /></td></tr>
+<tr class="separator:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memItemLeft" align="right" valign="top"><a id="afc6ff82e38b84c9e876fd797aafedd1b"></a>
+<a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a></td></tr>
+<tr class="memdesc:afc6ff82e38b84c9e876fd797aafedd1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever this socket needs to be flushed. <br /></td></tr>
+<tr class="separator:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d39f1476d3d3440485697a0eabfe471"><td class="memItemLeft" align="right" valign="top"><a id="a1d39f1476d3d3440485697a0eabfe471"></a>
+<a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a></td></tr>
+<tr class="memdesc:a1d39f1476d3d3440485697a0eabfe471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever a socket needs to be acquired for exclusive access, such as when an instruction is about to be written. <br /></td></tr>
+<tr class="separator:a1d39f1476d3d3440485697a0eabfe471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67be8367b5e1b330ee151b22c692500b"><td class="memItemLeft" align="right" valign="top"><a id="a67be8367b5e1b330ee151b22c692500b"></a>
+<a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a></td></tr>
+<tr class="memdesc:a67be8367b5e1b330ee151b22c692500b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever exclusive access to a socket is being released, such as when an instruction has finished being written. <br /></td></tr>
+<tr class="separator:a67be8367b5e1b330ee151b22c692500b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memItemLeft" align="right" valign="top"><a id="ad29e7f8a6819ca7bb541e8a947d5bc4f"></a>
+<a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a></td></tr>
+<tr class="memdesc:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses.">guac_socket_select()</a> is invoked on this socket. <br /></td></tr>
+<tr class="separator:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1044cde496cfe11c914c623dc1e29678"><td class="memItemLeft" align="right" valign="top"><a id="a1044cde496cfe11c914c623dc1e29678"></a>
+<a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a></td></tr>
+<tr class="memdesc:a1044cde496cfe11c914c623dc1e29678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the socket is free'd (closed). <br /></td></tr>
+<tr class="separator:a1044cde496cfe11c914c623dc1e29678"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2d5236c7e570dfee207511241edaa9b"><td class="memItemLeft" align="right" valign="top"><a id="ac2d5236c7e570dfee207511241edaa9b"></a>
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a></td></tr>
+<tr class="memdesc:ac2d5236c7e570dfee207511241edaa9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. <br /></td></tr>
+<tr class="separator:ac2d5236c7e570dfee207511241edaa9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memItemLeft" align="right" valign="top"><a id="adf00e9c13ff3808fceb4c71c1172fb51"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a></td></tr>
+<tr class="memdesc:adf00e9c13ff3808fceb4c71c1172fb51"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timestamp associated with the time the last block of data was written to this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a>. <br /></td></tr>
+<tr class="separator:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The core I/O object of Guacamole. </p>
+<p><a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> provides buffered input and output as well as convenience methods for efficiently writing base64 data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket_8h_source.html">socket.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__socket__ssl__data.html b/doc/1.3.0/libguac/structguac__socket__ssl__data.html
new file mode 100644
index 0000000..ba23945
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__socket__ssl__data.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket_ssl_data Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket_ssl_data Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SSL socket-specific data.  
+ <a href="structguac__socket__ssl__data.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memItemLeft" align="right" valign="top"><a id="a4b6134fe4c41d78e42abbe5d8c27330a"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a></td></tr>
+<tr class="memdesc:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The file descriptor that SSL communication will take place over. <br /></td></tr>
+<tr class="separator:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memItemLeft" align="right" valign="top"><a id="a22b295ba9b80cc15a5dfa4c06aea541f"></a>
+SSL_CTX *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a></td></tr>
+<tr class="memdesc:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current SSL context. <br /></td></tr>
+<tr class="separator:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab86a780b4801fdbf411a24255cf700ac"><td class="memItemLeft" align="right" valign="top"><a id="ab86a780b4801fdbf411a24255cf700ac"></a>
+SSL *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a></td></tr>
+<tr class="memdesc:ab86a780b4801fdbf411a24255cf700ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SSL connection, created automatically via <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790" title="Creates a new guac_socket which will use SSL for all communication.">guac_socket_open_secure()</a>. <br /></td></tr>
+<tr class="separator:ab86a780b4801fdbf411a24255cf700ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>SSL socket-specific data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket-ssl_8h_source.html">socket-ssl.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__stream.html b/doc/1.3.0/libguac/structguac__stream.html
new file mode 100644
index 0000000..2fa2c9c
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__stream.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single stream within the Guacamole protocol.  
+ <a href="structguac__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memItemLeft" align="right" valign="top"><a id="a487951c2cc77b2e1637e3aa0b5faaa60"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a></td></tr>
+<tr class="memdesc:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this stream. <br /></td></tr>
+<tr class="separator:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdf20063ca408431862d901c9445b429"><td class="memItemLeft" align="right" valign="top"><a id="acdf20063ca408431862d901c9445b429"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a></td></tr>
+<tr class="memdesc:acdf20063ca408431862d901c9445b429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this stream. <br /></td></tr>
+<tr class="separator:acdf20063ca408431862d901c9445b429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd077c7266d10871ee1e07951dfa72ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a></td></tr>
+<tr class="memdesc:acd077c7266d10871ee1e07951dfa72ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#acd077c7266d10871ee1e07951dfa72ff">More...</a><br /></td></tr>
+<tr class="separator:acd077c7266d10871ee1e07951dfa72ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51122ba04f416d8ce047542c603632f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a></td></tr>
+<tr class="memdesc:a51122ba04f416d8ce047542c603632f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a51122ba04f416d8ce047542c603632f8">More...</a><br /></td></tr>
+<tr class="separator:a51122ba04f416d8ce047542c603632f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a></td></tr>
+<tr class="memdesc:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a96fef1b691d5c5ebaf78bff6df3b01db">More...</a><br /></td></tr>
+<tr class="separator:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single stream within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="acd077c7266d10871ee1e07951dfa72ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd077c7266d10871ee1e07951dfa72ff">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_stream::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__stream.html">guac_stream</a>* stream = <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(user);</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a> = <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"></div><div class="line">    <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(user-&gt;<a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>,</div><div class="line">        stream, <span class="stringliteral">&quot;text/plain&quot;</span>);</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a51122ba04f416d8ce047542c603632f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51122ba04f416d8ce047542c603632f8">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_stream::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a> = <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a96fef1b691d5c5ebaf78bff6df3b01db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96fef1b691d5c5ebaf78bff6df3b01db">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_stream::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a> = <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="stream_8h_source.html">stream.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__user.html b/doc/1.3.0/libguac/structguac__user.html
new file mode 100644
index 0000000..825902d
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__user.html
@@ -0,0 +1,540 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Representation of a physical connection within a larger logical connection which may be shared.  
+ <a href="structguac__user.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memItemLeft" align="right" valign="top"><a id="a5e296149a26932dfeb7d8b0bac933ecf"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a></td></tr>
+<tr class="memdesc:a5e296149a26932dfeb7d8b0bac933ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> to which this user belongs. <br /></td></tr>
+<tr class="separator:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8496638b8c4c52f5f15d483b92becf27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a></td></tr>
+<tr class="memdesc:a8496638b8c4c52f5f15d483b92becf27"><td class="mdescLeft">&#160;</td><td class="mdescRight">This user's actual socket.  <a href="#a8496638b8c4c52f5f15d483b92becf27">More...</a><br /></td></tr>
+<tr class="separator:a8496638b8c4c52f5f15d483b92becf27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a></td></tr>
+<tr class="memdesc:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user.  <a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">More...</a><br /></td></tr>
+<tr class="separator:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265180af7291745b2e090ee6fa47cbb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a></td></tr>
+<tr class="memdesc:a265180af7291745b2e090ee6fa47cbb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is the owner of the associated connection, zero otherwise.  <a href="#a265180af7291745b2e090ee6fa47cbb8">More...</a><br /></td></tr>
+<tr class="separator:a265180af7291745b2e090ee6fa47cbb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a></td></tr>
+<tr class="memdesc:a1b52d918f437923d65e9b3eecb20fcfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is active (connected), and zero otherwise.  <a href="#a1b52d918f437923d65e9b3eecb20fcfd">More...</a><br /></td></tr>
+<tr class="separator:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebdee192ef52dfe8956c776adc65fb16"><td class="memItemLeft" align="right" valign="top"><a id="aebdee192ef52dfe8956c776adc65fb16"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a></td></tr>
+<tr class="memdesc:aebdee192ef52dfe8956c776adc65fb16"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) of receipt of the last sync message from the user. <br /></td></tr>
+<tr class="separator:aebdee192ef52dfe8956c776adc65fb16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a></td></tr>
+<tr class="memdesc:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="mdescLeft">&#160;</td><td class="mdescRight">The duration of the last frame rendered by the user, in milliseconds.  <a href="#ac7e84b1bf15d3d15ba49ce58f1819060">More...</a><br /></td></tr>
+<tr class="separator:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memItemLeft" align="right" valign="top"><a id="a4b097cae9283bb0caf70189d4f3d1d0e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a></td></tr>
+<tr class="memdesc:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The overall lag experienced by the user relative to the stream of frames, roughly excluding network lag. <br /></td></tr>
+<tr class="separator:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0120f63e0eb933761666047ed80e483f"><td class="memItemLeft" align="right" valign="top"><a id="a0120f63e0eb933761666047ed80e483f"></a>
+<a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a></td></tr>
+<tr class="memdesc:a0120f63e0eb933761666047ed80e483f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information structure containing properties exposed by the remote user during the initial handshake process. <br /></td></tr>
+<tr class="separator:a0120f63e0eb933761666047ed80e483f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad424a52c5d996e4a33de5dad61555883"><td class="memItemLeft" align="right" valign="top"><a id="ad424a52c5d996e4a33de5dad61555883"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a></td></tr>
+<tr class="memdesc:ad424a52c5d996e4a33de5dad61555883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary user-specific data. <br /></td></tr>
+<tr class="separator:ad424a52c5d996e4a33de5dad61555883"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05ec6fd1894ff8df10c051b20df1b763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a></td></tr>
+<tr class="memdesc:a05ec6fd1894ff8df10c051b20df1b763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for mouse events sent by the Gaucamole web-client.  <a href="#a05ec6fd1894ff8df10c051b20df1b763">More...</a><br /></td></tr>
+<tr class="separator:a05ec6fd1894ff8df10c051b20df1b763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a></td></tr>
+<tr class="memdesc:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for key events sent by the Guacamole web-client.  <a href="#ab9b8b3c268a0d14a28bdae6929cffb13">More...</a><br /></td></tr>
+<tr class="separator:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f042802092c8bbf4407836f3185343"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a></td></tr>
+<tr class="memdesc:a77f042802092c8bbf4407836f3185343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for clipboard events sent by the Guacamole web-client.  <a href="#a77f042802092c8bbf4407836f3185343">More...</a><br /></td></tr>
+<tr class="separator:a77f042802092c8bbf4407836f3185343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a></td></tr>
+<tr class="memdesc:a36a2fee906be0898907ba6e4a97bdb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for size events sent by the Guacamole web-client.  <a href="#a36a2fee906be0898907ba6e4a97bdb9a">More...</a><br /></td></tr>
+<tr class="separator:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b958a20fbe7cf082d5ee074fceac474"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a></td></tr>
+<tr class="memdesc:a8b958a20fbe7cf082d5ee074fceac474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for file events sent by the Guacamole web-client.  <a href="#a8b958a20fbe7cf082d5ee074fceac474">More...</a><br /></td></tr>
+<tr class="separator:a8b958a20fbe7cf082d5ee074fceac474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a></td></tr>
+<tr class="memdesc:af35d1f6f2c97d917bf88cf66384f58a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for pipe events sent by the Guacamole web-client.  <a href="#af35d1f6f2c97d917bf88cf66384f58a3">More...</a><br /></td></tr>
+<tr class="separator:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a></td></tr>
+<tr class="memdesc:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#ad44c1bf6ab56aae0098458a1af2aa6be">More...</a><br /></td></tr>
+<tr class="separator:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a14fda25c9929269d198d4d602f7fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a></td></tr>
+<tr class="memdesc:a88a14fda25c9929269d198d4d602f7fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a88a14fda25c9929269d198d4d602f7fb">More...</a><br /></td></tr>
+<tr class="separator:a88a14fda25c9929269d198d4d602f7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a></td></tr>
+<tr class="memdesc:a793f7ef1cd818c296e7a5801c349f5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a793f7ef1cd818c296e7a5801c349f5ed">More...</a><br /></td></tr>
+<tr class="separator:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a209e83f080baf2e84d04cf08395374d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a></td></tr>
+<tr class="memdesc:a209e83f080baf2e84d04cf08395374d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for sync events sent by the Guacamole web-client.  <a href="#a209e83f080baf2e84d04cf08395374d2">More...</a><br /></td></tr>
+<tr class="separator:a209e83f080baf2e84d04cf08395374d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12f1c20cab11d657e0f255db10f42e2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a></td></tr>
+<tr class="memdesc:a12f1c20cab11d657e0f255db10f42e2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> is leaving an active connection.  <a href="#a12f1c20cab11d657e0f255db10f42e2f">More...</a><br /></td></tr>
+<tr class="separator:a12f1c20cab11d657e0f255db10f42e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada73c04bbf06de4280f2d7679190a19b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a></td></tr>
+<tr class="memdesc:ada73c04bbf06de4280f2d7679190a19b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#ada73c04bbf06de4280f2d7679190a19b">More...</a><br /></td></tr>
+<tr class="separator:ada73c04bbf06de4280f2d7679190a19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a></td></tr>
+<tr class="memdesc:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">More...</a><br /></td></tr>
+<tr class="separator:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a></td></tr>
+<tr class="memdesc:a391e11605bf5605df3e27f6f7d0e2c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for audio events sent by the Guacamole web-client.  <a href="#a391e11605bf5605df3e27f6f7d0e2c69">More...</a><br /></td></tr>
+<tr class="separator:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6b6bdcd73d29132df5f331921ca287a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a></td></tr>
+<tr class="memdesc:ab6b6bdcd73d29132df5f331921ca287a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client.  <a href="#ab6b6bdcd73d29132df5f331921ca287a">More...</a><br /></td></tr>
+<tr class="separator:ab6b6bdcd73d29132df5f331921ca287a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Representation of a physical connection within a larger logical connection which may be shared. </p>
+<p>Logical connections are represented by <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="ad44c1bf6ab56aae0098458a1af2aa6be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad44c1bf6ab56aae0098458a1af2aa6be">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_user::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a> = <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a1b52d918f437923d65e9b3eecb20fcfd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b52d918f437923d65e9b3eecb20fcfd">&#9670;&nbsp;</a></span>active</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::active</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is active (connected), and zero otherwise. </p>
+<p>When the user is created, this will be set to a non-zero value. If an event occurs which requires that the user disconnect, or the user has disconnected, this will be reset to zero. </p>
+
+</div>
+</div>
+<a id="ab6b6bdcd73d29132df5f331921ca287a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6b6bdcd73d29132df5f331921ca287a">&#9670;&nbsp;</a></span>argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* guac_user::argv_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the argument (connection parameter) name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a> = <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a391e11605bf5605df3e27f6f7d0e2c69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a391e11605bf5605df3e27f6f7d0e2c69">&#9670;&nbsp;</a></span>audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* guac_user::audio_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for audio events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client wishes to send a continuous stream of audio data from some arbitrary source (a microphone, for example).</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a> = <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a88a14fda25c9929269d198d4d602f7fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88a14fda25c9929269d198d4d602f7fb">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_user::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a> = <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a77f042802092c8bbf4407836f3185343"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77f042802092c8bbf4407836f3185343">&#9670;&nbsp;</a></span>clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* guac_user::clipboard_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for clipboard events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client sets the data of the clipboard.</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a> = <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a793f7ef1cd818c296e7a5801c349f5ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a793f7ef1cd818c296e7a5801c349f5ed">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_user::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a> = <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8b958a20fbe7cf082d5ee074fceac474"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b958a20fbe7cf082d5ee074fceac474">&#9670;&nbsp;</a></span>file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* guac_user::file_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for file events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the file being transferred, and the filename.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a> = <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ada73c04bbf06de4280f2d7679190a19b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ada73c04bbf06de4280f2d7679190a19b">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_user::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol.">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a> = <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ab9b8b3c268a0d14a28bdae6929cffb13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9b8b3c268a0d14a28bdae6929cffb13">&#9670;&nbsp;</a></span>key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* guac_user::key_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for key events sent by the Guacamole web-client. </p>
+<p>The handler takes the integer X11 keysym associated with the key being pressed/released, and an integer representing whether the key is being pressed (1) or released (0).</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a> = <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ac7e84b1bf15d3d15ba49ce58f1819060"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7e84b1bf15d3d15ba49ce58f1819060">&#9670;&nbsp;</a></span>last_frame_duration</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::last_frame_duration</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The duration of the last frame rendered by the user, in milliseconds. </p>
+<p>This duration will include network and processing lag, and thus should be slightly higher than the true frame duration. </p>
+
+</div>
+</div>
+<a id="a12f1c20cab11d657e0f255db10f42e2f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a12f1c20cab11d657e0f255db10f42e2f">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_user::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> is leaving an active connection. </p>
+<p>The handler takes only a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> which will be the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> that left the connection. This <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_join_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argv, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a> = <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a05ec6fd1894ff8df10c051b20df1b763"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05ec6fd1894ff8df10c051b20df1b763">&#9670;&nbsp;</a></span>mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* guac_user::mouse_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for mouse events sent by the Gaucamole web-client. </p>
+<p>The handler takes the integer mouse X and Y coordinates, as well as a button mask containing the bitwise OR of all button values currently being pressed. Those values are:</p>
+<table class="doxtable">
+<tr>
+<th>Button </th><th>Value </th></tr>
+<tr>
+<td>Left </td><td>1 </td></tr>
+<tr>
+<td>Middle </td><td>2 </td></tr>
+<tr>
+<td>Right </td><td>4 </td></tr>
+<tr>
+<td>Scrollwheel Up </td><td>8 </td></tr>
+<tr>
+<td>Scrollwheel Down</td><td>16 </td></tr>
+</table>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> button_mask);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a> = <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a265180af7291745b2e090ee6fa47cbb8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a265180af7291745b2e090ee6fa47cbb8">&#9670;&nbsp;</a></span>owner</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::owner</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is the owner of the associated connection, zero otherwise. </p>
+<p>The owner is the user which created the connection. </p>
+
+</div>
+</div>
+<a id="af35d1f6f2c97d917bf88cf66384f58a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af35d1f6f2c97d917bf88cf66384f58a3">&#9670;&nbsp;</a></span>pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* guac_user::pipe_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for pipe events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the pipe name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a> = <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0b33553d0e1af01d8c9fbc6ec33202c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_user::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol.">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol.">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a> = <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a36a2fee906be0898907ba6e4a97bdb9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a36a2fee906be0898907ba6e4a97bdb9a">&#9670;&nbsp;</a></span>size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* guac_user::size_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for size events sent by the Guacamole web-client. </p>
+<p>The handler takes an integer width and integer height, representing the current visible screen area of the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a> = <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8496638b8c4c52f5f15d483b92becf27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8496638b8c4c52f5f15d483b92becf27">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_user::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This user's actual socket. </p>
+<p>Data written to this socket will be received by this user alone, and data sent by this specific user will be received by this socket. </p>
+
+</div>
+</div>
+<a id="a209e83f080baf2e84d04cf08395374d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a209e83f080baf2e84d04cf08395374d2">&#9670;&nbsp;</a></span>sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* guac_user::sync_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for sync events sent by the Guacamole web-client. </p>
+<p>Sync events are used to track per-user latency.</p>
+<p>The handler takes only a guac_timestamp which contains the timestamp received from the user. Latency can be determined by comparing this timestamp against the last_sent_timestamp of <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a> = <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aad1c6a8b56d17c12eb1f1e36c4798c70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">&#9670;&nbsp;</a></span>user_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user::user_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and users, and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/structguac__user__info.html b/doc/1.3.0/libguac/structguac__user__info.html
new file mode 100644
index 0000000..b523ff9
--- /dev/null
+++ b/doc/1.3.0/libguac/structguac__user__info.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user_info Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Information exposed by the remote client during the connection handshake which can be used by a client plugin.  
+ <a href="structguac__user__info.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a496d5f3d26a7db0a0490afa553126c66"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a></td></tr>
+<tr class="memdesc:a496d5f3d26a7db0a0490afa553126c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display width.  <a href="#a496d5f3d26a7db0a0490afa553126c66">More...</a><br /></td></tr>
+<tr class="separator:a496d5f3d26a7db0a0490afa553126c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a252079af642b62554566e8675dc43354"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a></td></tr>
+<tr class="memdesc:a252079af642b62554566e8675dc43354"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display height.  <a href="#a252079af642b62554566e8675dc43354">More...</a><br /></td></tr>
+<tr class="separator:a252079af642b62554566e8675dc43354"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043432620dafe7ba38fcd3550fdc7d27"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a></td></tr>
+<tr class="memdesc:a043432620dafe7ba38fcd3550fdc7d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported audio mimetypes.  <a href="#a043432620dafe7ba38fcd3550fdc7d27">More...</a><br /></td></tr>
+<tr class="separator:a043432620dafe7ba38fcd3550fdc7d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace535bea6879596b6473657f3fc83b57"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a></td></tr>
+<tr class="memdesc:ace535bea6879596b6473657f3fc83b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported video mimetypes.  <a href="#ace535bea6879596b6473657f3fc83b57">More...</a><br /></td></tr>
+<tr class="separator:ace535bea6879596b6473657f3fc83b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac05b09cce376e656f4e4baa19f888345"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a></td></tr>
+<tr class="memdesc:ac05b09cce376e656f4e4baa19f888345"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported image mimetypes.  <a href="#ac05b09cce376e656f4e4baa19f888345">More...</a><br /></td></tr>
+<tr class="separator:ac05b09cce376e656f4e4baa19f888345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a></td></tr>
+<tr class="memdesc:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The DPI of the physical remote display if configured for the optimal width/height combination described here.  <a href="#ac19c08c0ef7441556be0afed6fb9c7c7">More...</a><br /></td></tr>
+<tr class="separator:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c08990b6fd1e0627652a9c879ea2078"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a></td></tr>
+<tr class="memdesc:a2c08990b6fd1e0627652a9c879ea2078"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timezone of the remote system.  <a href="#a2c08990b6fd1e0627652a9c879ea2078">More...</a><br /></td></tr>
+<tr class="separator:a2c08990b6fd1e0627652a9c879ea2078"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae0a9e3db4f19e3052e7c9c9a81c5658"><td class="memItemLeft" align="right" valign="top"><a id="aae0a9e3db4f19e3052e7c9c9a81c5658"></a>
+<a class="el" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">protocol_version</a></td></tr>
+<tr class="memdesc:aae0a9e3db4f19e3052e7c9c9a81c5658"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Guacamole protocol version that the remote system supports, allowing for feature support to be negotiated between client and server. <br /></td></tr>
+<tr class="separator:aae0a9e3db4f19e3052e7c9c9a81c5658"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Information exposed by the remote client during the connection handshake which can be used by a client plugin. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a043432620dafe7ba38fcd3550fdc7d27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a043432620dafe7ba38fcd3550fdc7d27">&#9670;&nbsp;</a></span>audio_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::audio_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported audio mimetypes. </p>
+<p>If the client does not support audio at all, this will be NULL. </p>
+
+</div>
+</div>
+<a id="ac05b09cce376e656f4e4baa19f888345"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac05b09cce376e656f4e4baa19f888345">&#9670;&nbsp;</a></span>image_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::image_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported image mimetypes. </p>
+<p>Though all supported image mimetypes will be listed here, it can be safely assumed that all clients will support at least "image/png" and "image/jpeg". </p>
+
+</div>
+</div>
+<a id="a252079af642b62554566e8675dc43354"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a252079af642b62554566e8675dc43354">&#9670;&nbsp;</a></span>optimal_height</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_height</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display height. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="ac19c08c0ef7441556be0afed6fb9c7c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac19c08c0ef7441556be0afed6fb9c7c7">&#9670;&nbsp;</a></span>optimal_resolution</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_resolution</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The DPI of the physical remote display if configured for the optimal width/height combination described here. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the stated resolution of the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a496d5f3d26a7db0a0490afa553126c66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a496d5f3d26a7db0a0490afa553126c66">&#9670;&nbsp;</a></span>optimal_width</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_width</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display width. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a2c08990b6fd1e0627652a9c879ea2078"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c08990b6fd1e0627652a9c879ea2078">&#9670;&nbsp;</a></span>timezone</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* guac_user_info::timezone</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The timezone of the remote system. </p>
+<p>If the client does not provide a specific timezone then this will be NULL. The format of the timezone is the standard tzdata naming convention. </p>
+
+</div>
+</div>
+<a id="ace535bea6879596b6473657f3fc83b57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace535bea6879596b6473657f3fc83b57">&#9670;&nbsp;</a></span>video_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::video_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported video mimetypes. </p>
+<p>If the client does not support video at all, this will be NULL. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/sync_off.png b/doc/1.3.0/libguac/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/doc/1.3.0/libguac/sync_off.png
Binary files differ
diff --git a/doc/1.3.0/libguac/sync_on.png b/doc/1.3.0/libguac/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/doc/1.3.0/libguac/sync_on.png
Binary files differ
diff --git a/doc/1.3.0/libguac/tab_a.png b/doc/1.3.0/libguac/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/doc/1.3.0/libguac/tab_a.png
Binary files differ
diff --git a/doc/1.3.0/libguac/tab_b.png b/doc/1.3.0/libguac/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/doc/1.3.0/libguac/tab_b.png
Binary files differ
diff --git a/doc/1.3.0/libguac/tab_h.png b/doc/1.3.0/libguac/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/doc/1.3.0/libguac/tab_h.png
Binary files differ
diff --git a/doc/1.3.0/libguac/tab_s.png b/doc/1.3.0/libguac/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/doc/1.3.0/libguac/tab_s.png
Binary files differ
diff --git a/doc/1.3.0/libguac/tabs.css b/doc/1.3.0/libguac/tabs.css
new file mode 100644
index 0000000..8ea7d54
--- /dev/null
+++ b/doc/1.3.0/libguac/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doc/1.3.0/libguac/timestamp-types_8h.html b/doc/1.3.0/libguac/timestamp-types_8h.html
new file mode 100644
index 0000000..e639168
--- /dev/null
+++ b/doc/1.3.0/libguac/timestamp-types_8h.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a69e916d1ff324fbe0e527f32359c9cea"><td class="memItemLeft" align="right" valign="top"><a id="a69e916d1ff324fbe0e527f32359c9cea"></a>
+typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></td></tr>
+<tr class="memdesc:a69e916d1ff324fbe0e527f32359c9cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">An arbitrary timestamp denoting a relative time value in milliseconds. <br /></td></tr>
+<tr class="separator:a69e916d1ff324fbe0e527f32359c9cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol timestamps. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/timestamp-types_8h_source.html b/doc/1.3.0/libguac/timestamp-types_8h_source.html
new file mode 100644
index 0000000..8ae8749
--- /dev/null
+++ b/doc/1.3.0/libguac/timestamp-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">   34</a></span>&#160;<span class="keyword">typedef</span> int64_t <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/timestamp_8h.html b/doc/1.3.0/libguac/timestamp_8h.html
new file mode 100644
index 0000000..5384449
--- /dev/null
+++ b/doc/1.3.0/libguac/timestamp_8h.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for creating timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab85ce937dce4d8e94c173be917bc0719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a> ()</td></tr>
+<tr class="memdesc:ab85ce937dce4d8e94c173be917bc0719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an arbitrary timestamp.  <a href="#ab85ce937dce4d8e94c173be917bc0719">More...</a><br /></td></tr>
+<tr class="separator:ab85ce937dce4d8e94c173be917bc0719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d1fdc2698a04c75e196b014a4717868"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a> (int duration)</td></tr>
+<tr class="memdesc:a4d1fdc2698a04c75e196b014a4717868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleeps for the given number of milliseconds.  <a href="#a4d1fdc2698a04c75e196b014a4717868">More...</a><br /></td></tr>
+<tr class="separator:a4d1fdc2698a04c75e196b014a4717868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for creating timestamps. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ab85ce937dce4d8e94c173be917bc0719"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab85ce937dce4d8e94c173be917bc0719">&#9670;&nbsp;</a></span>guac_timestamp_current()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> guac_timestamp_current </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns an arbitrary timestamp. </p>
+<p>The difference between return values of any two calls is equal to the amount of time in milliseconds between those calls. The return value from a single call will not have any useful (or defined) meaning.</p>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary millisecond timestamp. </dd></dl>
+
+</div>
+</div>
+<a id="a4d1fdc2698a04c75e196b014a4717868"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d1fdc2698a04c75e196b014a4717868">&#9670;&nbsp;</a></span>guac_timestamp_msleep()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_timestamp_msleep </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>duration</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sleeps for the given number of milliseconds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">duration</td><td>The number of milliseconds to sleep. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/timestamp_8h_source.html b/doc/1.3.0/libguac/timestamp_8h_source.html
new file mode 100644
index 0000000..3aa8c7a
--- /dev/null
+++ b/doc/1.3.0/libguac/timestamp_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a>();</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> <a class="code" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a>(<span class="keywordtype">int</span> duration);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="timestamp_8h_html_ab85ce937dce4d8e94c173be917bc0719"><div class="ttname"><a href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a></div><div class="ttdeci">guac_timestamp guac_timestamp_current()</div><div class="ttdoc">Returns an arbitrary timestamp.</div></div>
+<div class="ttc" id="timestamp_8h_html_a4d1fdc2698a04c75e196b014a4717868"><div class="ttname"><a href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a></div><div class="ttdeci">void guac_timestamp_msleep(int duration)</div><div class="ttdoc">Sleeps for the given number of milliseconds.</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/unicode_8h.html b/doc/1.3.0/libguac/unicode_8h.html
new file mode 100644
index 0000000..b1bb9de
--- /dev/null
+++ b/doc/1.3.0/libguac/unicode_8h.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">unicode.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions for manipulating Unicode strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="unicode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a423523f1531719c6ab4fafdb02008623"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a> (unsigned char c)</td></tr>
+<tr class="memdesc:a423523f1531719c6ab4fafdb02008623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character.  <a href="#a423523f1531719c6ab4fafdb02008623">More...</a><br /></td></tr>
+<tr class="separator:a423523f1531719c6ab4fafdb02008623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a778e48706f4ee85f229711fe4cb1343b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a> (const char *str)</td></tr>
+<tr class="memdesc:a778e48706f4ee85f229711fe4cb1343b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes).  <a href="#a778e48706f4ee85f229711fe4cb1343b">More...</a><br /></td></tr>
+<tr class="separator:a778e48706f4ee85f229711fe4cb1343b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49339a4af9952b0b56402825059a2ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a> (int codepoint, char *utf8, int length)</td></tr>
+<tr class="memdesc:aa49339a4af9952b0b56402825059a2ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written.  <a href="#aa49339a4af9952b0b56402825059a2ce">More...</a><br /></td></tr>
+<tr class="separator:aa49339a4af9952b0b56402825059a2ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a> (const char *utf8, int length, int *codepoint)</td></tr>
+<tr class="memdesc:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes.  <a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">More...</a><br /></td></tr>
+<tr class="separator:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions for manipulating Unicode strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a423523f1531719c6ab4fafdb02008623"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a423523f1531719c6ab4fafdb02008623">&#9670;&nbsp;</a></span>guac_utf8_charsize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_charsize </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>c</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">c</td><td>The initial byte of the character to check. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes in the given character overall. </dd></dl>
+
+</div>
+</div>
+<a id="a1690b7b5e4fbcfc556fa4ee7129a25af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">&#9670;&nbsp;</a></span>guac_utf8_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_read </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>codepoint</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes. </p>
+<p>If no codepoint could be read, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">utf8</td><td>A buffer containing UTF-8 characters. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+    <tr><td class="paramname">codepoint</td><td>A pointer to an integer which will contain the codepoint read, if any. If no character can be read, the integer will be left untouched. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, which may be zero if there is not enough space in the buffer to read a character. </dd></dl>
+
+</div>
+</div>
+<a id="a778e48706f4ee85f229711fe4cb1343b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a778e48706f4ee85f229711fe4cb1343b">&#9670;&nbsp;</a></span>guac_utf8_strlen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_strlen </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a UTF-8-encoded string, returns the length of the string in characters (not bytes). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>The UTF-8 string to calculate the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length in characters of the given UTF-8 string. </dd></dl>
+
+</div>
+</div>
+<a id="aa49339a4af9952b0b56402825059a2ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa49339a4af9952b0b56402825059a2ce">&#9670;&nbsp;</a></span>guac_utf8_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_write </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>codepoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written. </p>
+<p>If there is not enough space in the buffer to write the character, no bytes are written at all.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">codepoint</td><td>The Unicode codepoint to write to the buffer. </td></tr>
+    <tr><td class="paramname">utf8</td><td>The buffer to write to. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, which may be zero if there is not enough space in the buffer to write the UTF-8 character. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/unicode_8h_source.html b/doc/1.3.0/libguac/unicode_8h_source.html
new file mode 100644
index 0000000..f485fcc
--- /dev/null
+++ b/doc/1.3.0/libguac/unicode_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">unicode.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="unicode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_UNICODE_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_UNICODE_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a>(<span class="keywordtype">int</span> codepoint, <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length, <span class="keywordtype">int</span>* codepoint);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="ttc" id="unicode_8h_html_aa49339a4af9952b0b56402825059a2ce"><div class="ttname"><a href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a></div><div class="ttdeci">int guac_utf8_write(int codepoint, char *utf8, int length)</div><div class="ttdoc">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer,...</div></div>
+<div class="ttc" id="unicode_8h_html_a778e48706f4ee85f229711fe4cb1343b"><div class="ttname"><a href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a></div><div class="ttdeci">size_t guac_utf8_strlen(const char *str)</div><div class="ttdoc">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes).</div></div>
+<div class="ttc" id="unicode_8h_html_a1690b7b5e4fbcfc556fa4ee7129a25af"><div class="ttname"><a href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a></div><div class="ttdeci">int guac_utf8_read(const char *utf8, int length, int *codepoint)</div><div class="ttdoc">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer,...</div></div>
+<div class="ttc" id="unicode_8h_html_a423523f1531719c6ab4fafdb02008623"><div class="ttname"><a href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a></div><div class="ttdeci">size_t guac_utf8_charsize(unsigned char c)</div><div class="ttdoc">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire chara...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-constants_8h.html b/doc/1.3.0/libguac/user-constants_8h.html
new file mode 100644
index 0000000..fc61eca
--- /dev/null
+++ b/doc/1.3.0/libguac/user-constants_8h.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">user-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa6442383e07f6aa68fbe504037101a87"><td class="memItemLeft" align="right" valign="top"><a id="aa6442383e07f6aa68fbe504037101a87"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">GUAC_USER_ID_PREFIX</a>&#160;&#160;&#160;'@'</td></tr>
+<tr class="memdesc:aa6442383e07f6aa68fbe504037101a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a user ID. <br /></td></tr>
+<tr class="separator:aa6442383e07f6aa68fbe504037101a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memItemLeft" align="right" valign="top"><a id="a9e0884fe25345c84beac1c5a13b1c5ce"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">GUAC_USER_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>. <br /></td></tr>
+<tr class="separator:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749ef8d1917591b82b7747edc85d275"><td class="memItemLeft" align="right" valign="top"><a id="a8749ef8d1917591b82b7747edc85d275"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">GUAC_USER_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a8749ef8d1917591b82b7747edc85d275"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a8749ef8d1917591b82b7747edc85d275"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afbdfab527f553d531ce690cabd4ae1e7"><td class="memItemLeft" align="right" valign="top"><a id="afbdfab527f553d531ce690cabd4ae1e7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">GUAC_USER_MAX_OBJECTS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:afbdfab527f553d531ce690cabd4ae1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of objects supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. <br /></td></tr>
+<tr class="separator:afbdfab527f553d531ce690cabd4ae1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memItemLeft" align="right" valign="top"><a id="ae0609bd43bffdfa9ebb8da62f8118c9f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">GUAC_USER_UNDEFINED_OBJECT_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of an object which has not been defined. <br /></td></tr>
+<tr class="separator:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb353db4f79b67678376bb521db182e5"><td class="memItemLeft" align="right" valign="top"><a id="acb353db4f79b67678376bb521db182e5"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">GUAC_USER_OBJECT_ROOT_NAME</a>&#160;&#160;&#160;&quot;/&quot;</td></tr>
+<tr class="memdesc:acb353db4f79b67678376bb521db182e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream name reserved for the root of a Guacamole protocol object. <br /></td></tr>
+<tr class="separator:acb353db4f79b67678376bb521db182e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3135ba0f5c4cf3099374f612446b490"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">GUAC_USER_STREAM_INDEX_MIMETYPE</a>&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td></tr>
+<tr class="memdesc:af3135ba0f5c4cf3099374f612446b490"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of a stream containing a map of available stream names to their corresponding mimetypes.  <a href="#af3135ba0f5c4cf3099374f612446b490">More...</a><br /></td></tr>
+<tr class="separator:af3135ba0f5c4cf3099374f612446b490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af3135ba0f5c4cf3099374f612446b490"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3135ba0f5c4cf3099374f612446b490">&#9670;&nbsp;</a></span>GUAC_USER_STREAM_INDEX_MIMETYPE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_USER_STREAM_INDEX_MIMETYPE&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The mimetype of a stream containing a map of available stream names to their corresponding mimetypes. </p>
+<p>The root of a Guacamole protocol object is guaranteed to have this type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-constants_8h_source.html b/doc/1.3.0/libguac/user-constants_8h_source.html
new file mode 100644
index 0000000..160472c
--- /dev/null
+++ b/doc/1.3.0/libguac/user-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">   32</a></span>&#160;<span class="preprocessor">#define GUAC_USER_ID_PREFIX &#39;@&#39;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">   38</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_STREAMS 64</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">   43</a></span>&#160;<span class="preprocessor">#define GUAC_USER_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">   48</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_OBJECTS 64</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">   53</a></span>&#160;<span class="preprocessor">#define GUAC_USER_UNDEFINED_OBJECT_INDEX -1</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">   58</a></span>&#160;<span class="preprocessor">#define GUAC_USER_OBJECT_ROOT_NAME &quot;/&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">   65</a></span>&#160;<span class="preprocessor">#define GUAC_USER_STREAM_INDEX_MIMETYPE &quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-fntypes_8h.html b/doc/1.3.0/libguac/user-fntypes_8h.html
new file mode 100644
index 0000000..7db074f
--- /dev/null
+++ b/doc/1.3.0/libguac/user-fntypes_8h.html
@@ -0,0 +1,612 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">user-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td></tr>
+<tr class="memdesc:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> at a time, along with arbitrary data.  <a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">More...</a><br /></td></tr>
+<tr class="separator:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td></tr>
+<tr class="memdesc:a337a3fe8b983e3e25e25dbb836ea2694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user.  <a href="#a337a3fe8b983e3e25e25dbb836ea2694">More...</a><br /></td></tr>
+<tr class="separator:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48d196c39615f6a1ff9b129267cb402e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td></tr>
+<tr class="memdesc:a48d196c39615f6a1ff9b129267cb402e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole key events, invoked when a "key" event has been received from a user.  <a href="#a48d196c39615f6a1ff9b129267cb402e">More...</a><br /></td></tr>
+<tr class="separator:a48d196c39615f6a1ff9b129267cb402e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole audio streams received from a user.  <a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">More...</a><br /></td></tr>
+<tr class="separator:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1658ce15f8c6fe958e873015e12aeed9"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1658ce15f8c6fe958e873015e12aeed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole clipboard streams received from a user.  <a href="#a1658ce15f8c6fe958e873015e12aeed9">More...</a><br /></td></tr>
+<tr class="separator:a1658ce15f8c6fe958e873015e12aeed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca3c0d12202f7888146bb95986011b6f"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td></tr>
+<tr class="memdesc:aca3c0d12202f7888146bb95986011b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole size events, invoked when a "size" instruction has been received from a user.  <a href="#aca3c0d12202f7888146bb95986011b6f">More...</a><br /></td></tr>
+<tr class="separator:aca3c0d12202f7888146bb95986011b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td></tr>
+<tr class="memdesc:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole file streams received from a user.  <a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">More...</a><br /></td></tr>
+<tr class="separator:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7ae6833c33b39618a8b78603581ff79"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:ab7ae6833c33b39618a8b78603581ff79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole pipe streams received from a user.  <a href="#ab7ae6833c33b39618a8b78603581ff79">More...</a><br /></td></tr>
+<tr class="separator:ab7ae6833c33b39618a8b78603581ff79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole argument value (argv) streams received from a user.  <a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">More...</a><br /></td></tr>
+<tr class="separator:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aead320956199884ff6af82d49d6163c1"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td></tr>
+<tr class="memdesc:aead320956199884ff6af82d49d6163c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream blobs.  <a href="#aead320956199884ff6af82d49d6163c1">More...</a><br /></td></tr>
+<tr class="separator:aead320956199884ff6af82d49d6163c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "ack" instructions.  <a href="#a88f4b7af6d47c82f65e9332afcc7ab09">More...</a><br /></td></tr>
+<tr class="separator:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:afa8b0e25073cbe710265dc8a0ed150ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "end" instructions.  <a href="#afa8b0e25073cbe710265dc8a0ed150ca">More...</a><br /></td></tr>
+<tr class="separator:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole join events.  <a href="#a88717a7ab29ac1e4a853fcc2caa8f872">More...</a><br /></td></tr>
+<tr class="separator:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa5806d288a42d93a54864b6c35617b8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:aaa5806d288a42d93a54864b6c35617b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole leave events.  <a href="#aaa5806d288a42d93a54864b6c35617b8">More...</a><br /></td></tr>
+<tr class="separator:aaa5806d288a42d93a54864b6c35617b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:ab60c51d865526c5c5d2c096e4fcb5539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole sync events.  <a href="#ab60c51d865526c5c5d2c096e4fcb5539">More...</a><br /></td></tr>
+<tr class="separator:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td></tr>
+<tr class="memdesc:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object get requests.  <a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">More...</a><br /></td></tr>
+<tr class="separator:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object put requests.  <a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">More...</a><br /></td></tr>
+<tr class="separator:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a88f4b7af6d47c82f65e9332afcc7ab09"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88f4b7af6d47c82f65e9332afcc7ab09">&#9670;&nbsp;</a></span>guac_user_ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_ack_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "ack" instructions. </p>
+<p>A user will send "ack" instructions to acknowledge the successful receipt of blobs along a stream opened by the server, or to notify of errors. An "ack" with an error status implicitly closes the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user sending the "ack" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream for which the "ack" was received.</td></tr>
+    <tr><td class="paramname">error</td><td>An arbitrary, human-readable message describing the error that occurred, if any. If no error occurs, this will likely be blank, "SUCCESS", or similar. This value exists for the sake of readability, not for the sake of data interchange.</td></tr>
+    <tr><td class="paramname">status</td><td>GUAC_PROTOCOL_STATUS_SUCCESS if the blob was received and handled successfully, or a different status code describing the problem if an error occurred and the stream has been implicitly closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the "ack" message was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a50636d9fb70c454a5e82cbf6ee4f9c8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">&#9670;&nbsp;</a></span>guac_user_argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_argv_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole argument value (argv) streams received from a user. </p>
+<p>Argument value streams are real-time revisions to the connection parameters of an in-progress connection. Each such argument value stream begins when the user sends a "argv" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the argument value stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the argument value stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being updated. It is up to the implementation of this handler to decide whether and how to update a connection parameter.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the argument value stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1d2777aaa35f39e5ba5e803a3ffbd137"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">&#9670;&nbsp;</a></span>guac_user_audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_audio_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole audio streams received from a user. </p>
+<p>Each such audio stream begins when the user sends an "audio" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the audio stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the audio stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the audio stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="aead320956199884ff6af82d49d6163c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aead320956199884ff6af82d49d6163c1">&#9670;&nbsp;</a></span>guac_user_blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_blob_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream blobs. </p>
+<p>Each blob originates from a "blob" instruction which was associated with a previously-created stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that is sending this blob of data along the stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blob was received. The semantics associated with this stream are determined by the manner of its creation.</td></tr>
+    <tr><td class="paramname">data</td><td>The blob of data received.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the blob of data received.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the blob of data was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a99c5146e0ab1df9ba2b2574fb26fbddf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">&#9670;&nbsp;</a></span>guac_user_callback</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void* guac_user_callback(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> at a time, along with arbitrary data. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a> </dd>
+<dd>
+<a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user for which this callback was invoked. Depending on whether <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a> was called, this will either be the current user as the "foreach" iteration continues, or the owner of the connection. If <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a> was called for a connection which has no owner, this may be NULL.</td></tr>
+    <tr><td class="paramname">data</td><td>The arbitrary data passed to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary return value, the semantics of which are determined by the implementation of the callback and the manner of its user. In the case of a callback provided to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a>, this value is always discarded. </dd></dl>
+
+</div>
+</div>
+<a id="a1658ce15f8c6fe958e873015e12aeed9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1658ce15f8c6fe958e873015e12aeed9">&#9670;&nbsp;</a></span>guac_user_clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_clipboard_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole clipboard streams received from a user. </p>
+<p>Each such clipboard stream begins when the user sends a "clipboard" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the clipboard stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the clipboard stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the clipboard stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afa8b0e25073cbe710265dc8a0ed150ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa8b0e25073cbe710265dc8a0ed150ca">&#9670;&nbsp;</a></span>guac_user_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_end_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "end" instructions. </p>
+<p>End instructions are sent by the user when a stream is closing because its end has been reached.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "end" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream that is being closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the end-of-stream condition has been sucessfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a6c24aa9dee9ee4be3f3d21e1e24b9e3e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">&#9670;&nbsp;</a></span>guac_user_file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_file_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole file streams received from a user. </p>
+<p>Each such file stream begins when the user sends a "file" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the file stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the file stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">filename</td><td>The name of the file being transferred.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the file stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="ab8b7cadf31aeac0b2ac0ce4f46dafe81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">&#9670;&nbsp;</a></span>guac_user_get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_get_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object get requests. </p>
+<p>The semantics of the stream which will be created in response to the request are determined by the type of the object and the name of the stream requested. It is up to the implementation of this handler to then respond with a "body" instruction that begins the requested stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting read access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the get request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a88717a7ab29ac1e4a853fcc2caa8f872"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88717a7ab29ac1e4a853fcc2caa8f872">&#9670;&nbsp;</a></span>guac_user_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_join_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole join events. </p>
+<p>A join event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> joins the connection. There is no instruction associated with a join event.</p>
+<p>Implementations of the join handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection. The <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> associated with the connection will already be populated within the user object.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments stored within argv.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments provided by the user when they joined. These arguments must correspond to the argument names declared when the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> was initialized. If the number of arguments does not match the number of argument names declared, then the joining user has violated the Guacamole protocol.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user has been successfully initialized and should be allowed to join the connection, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a48d196c39615f6a1ff9b129267cb402e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48d196c39615f6a1ff9b129267cb402e">&#9670;&nbsp;</a></span>guac_user_key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_key_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole key events, invoked when a "key" event has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the key event.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the key event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="aaa5806d288a42d93a54864b6c35617b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaa5806d288a42d93a54864b6c35617b8">&#9670;&nbsp;</a></span>guac_user_leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_leave_handler(<a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole leave events. </p>
+<p>A leave event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> leaves the connection. There is no instruction associated with a leave event.</p>
+<p>Implementations of the leave handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client.">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner.">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that has left the connection.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the leave event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a337a3fe8b983e3e25e25dbb836ea2694"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a337a3fe8b983e3e25e25dbb836ea2694">&#9670;&nbsp;</a></span>guac_user_mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_mouse_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the mouse event.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down.">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down.">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down.">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up.">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down.">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the mouse event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab7ae6833c33b39618a8b78603581ff79"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab7ae6833c33b39618a8b78603581ff79">&#9670;&nbsp;</a></span>guac_user_pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_pipe_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole pipe streams received from a user. </p>
+<p>Pipe streams are unidirectional, arbitrary, named pipes. Each such pipe stream begins when the user sends a "pipe" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the pipe stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the pipe stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The arbitrary name assigned to this pipe. It is up to the implementation of this handler and the application containing the Guacamole client to determine the semantics of a pipe stream having this name.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the pipe stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afd4c60871cc2dbbbdc82f58ae1c5baa0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">&#9670;&nbsp;</a></span>guac_user_put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_put_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object put requests. </p>
+<p>Put requests implicitly create a stream, the semantics of which are determined by the type of the object and the name of the stream requested.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting write access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blobs which should be written to the named stream will be received.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be received along the given stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the put request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="aca3c0d12202f7888146bb95986011b6f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca3c0d12202f7888146bb95986011b6f">&#9670;&nbsp;</a></span>guac_user_size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_size_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole size events, invoked when a "size" instruction has been received from a user. </p>
+<p>A "size" instruction indicates that the desired display size has changed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose desired display size has changed.</td></tr>
+    <tr><td class="paramname">width</td><td>The desired width of the display, in pixels.</td></tr>
+    <tr><td class="paramname">height</td><td>The desired height of the display, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the size event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ab60c51d865526c5c5d2c096e4fcb5539"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab60c51d865526c5c5d2c096e4fcb5539">&#9670;&nbsp;</a></span>guac_user_sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_sync_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole sync events. </p>
+<p>A sync event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> responds to a "sync" instruction. Sync instructions are sent by the Guacamole server to mark the logical end of a frame, and to inform the Guacamole client that all data up to a particular point in time has been sent. The response from the Guacamole client similarly indicates that all data received up to a particular point in server time has been handled.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "sync" instruction.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The timestamp contained within the sync instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the sync event has been handled successfully, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-fntypes_8h_source.html b/doc/1.3.0/libguac/user-fntypes_8h_source.html
new file mode 100644
index 0000000..f9114cd
--- /dev/null
+++ b/doc/1.3.0/libguac/user-fntypes_8h_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">   59</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">   95</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordtype">int</span> button_mask);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">  116</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">  138</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">  161</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">  182</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">  208</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">  237</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">  267</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">  290</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">  319</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">  336</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">  366</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">  385</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">  406</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">  427</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">  454</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol.</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-types_8h.html b/doc/1.3.0/libguac/user-types_8h.html
new file mode 100644
index 0000000..386cfaf
--- /dev/null
+++ b/doc/1.3.0/libguac/user-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user-types_8h_source.html b/doc/1.3.0/libguac/user-types_8h_source.html
new file mode 100644
index 0000000..47b13a1
--- /dev/null
+++ b/doc/1.3.0/libguac/user-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> <a class="code" href="structguac__user.html">guac_user</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user__info.html">guac_user_info</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user_8h.html b/doc/1.3.0/libguac/user_8h.html
new file mode 100644
index 0000000..02f3a9e
--- /dev/null
+++ b/doc/1.3.0/libguac/user_8h.html
@@ -0,0 +1,1217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">user.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html">guac_user_info</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information exposed by the remote client during the connection handshake which can be used by a client plugin.  <a href="structguac__user__info.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html">guac_user</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of a physical connection within a larger logical connection which may be shared.  <a href="structguac__user.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a586cd1d712dce0db02d57684ddcb02ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a> ()</td></tr>
+<tr class="memdesc:a586cd1d712dce0db02d57684ddcb02ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, blank user, not associated with any specific client or socket.  <a href="#a586cd1d712dce0db02d57684ddcb02ef">More...</a><br /></td></tr>
+<tr class="separator:a586cd1d712dce0db02d57684ddcb02ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given user and all associated resources.  <a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">More...</a><br /></td></tr>
+<tr class="separator:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28f08ab54f138796dea4655ef54526fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, int usec_timeout)</td></tr>
+<tr class="memdesc:a28f08ab54f138796dea4655ef54526fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake.  <a href="#a28f08ab54f138796dea4655ef54526fe">More...</a><br /></td></tr>
+<tr class="separator:a28f08ab54f138796dea4655ef54526fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char *opcode, int argc, char **argv)</td></tr>
+<tr class="memdesc:a0303ef487d51b06bb0f007f1a5df0d78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the appropriate handler defined by the given user for the given instruction.  <a href="#a0303ef487d51b06bb0f007f1a5df0d78">More...</a><br /></td></tr>
+<tr class="separator:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">More...</a><br /></td></tr>
+<tr class="separator:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:a3b3c740837b8e2cae6a232b45ca362f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream.">guac_user_alloc_stream()</a>.  <a href="#a3b3c740837b8e2cae6a232b45ca362f4">More...</a><br /></td></tr>
+<tr class="separator:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected.  <a href="#a8216ec7024947564fb4ea6b8b0b07eaf">More...</a><br /></td></tr>
+<tr class="separator:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0eff54a869374e37237b2006ad77b958"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a0eff54a869374e37237b2006ad77b958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a0eff54a869374e37237b2006ad77b958">More...</a><br /></td></tr>
+<tr class="separator:a0eff54a869374e37237b2006ad77b958"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8529247b551cb93509236a7f9138dd2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:ad8529247b551cb93509236a7f9138dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#ad8529247b551cb93509236a7f9138dd2">More...</a><br /></td></tr>
+<tr class="separator:ad8529247b551cb93509236a7f9138dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab19481d0800901190d3d734eae466151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ab19481d0800901190d3d734eae466151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#ab19481d0800901190d3d734eae466151">More...</a><br /></td></tr>
+<tr class="separator:ab19481d0800901190d3d734eae466151"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af15509bcb891932a3fa93a142018b95c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:af15509bcb891932a3fa93a142018b95c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#af15509bcb891932a3fa93a142018b95c">More...</a><br /></td></tr>
+<tr class="separator:af15509bcb891932a3fa93a142018b95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fa98ba49213d610491248cf085aaf56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a6fa98ba49213d610491248cf085aaf56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new object.  <a href="#a6fa98ba49213d610491248cf085aaf56">More...</a><br /></td></tr>
+<tr class="separator:a6fa98ba49213d610491248cf085aaf56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf92065fb6bbc92f9794ea50255acdb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:acf92065fb6bbc92f9794ea50255acdb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object.">guac_user_alloc_object()</a>.  <a href="#acf92065fb6bbc92f9794ea50255acdb9">More...</a><br /></td></tr>
+<tr class="separator:acf92065fb6bbc92f9794ea50255acdb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3f85461f15abfb46fd7c732538b33ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3f85461f15abfb46fd7c732538b33ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user.  <a href="#aa3f85461f15abfb46fd7c732538b33ea">More...</a><br /></td></tr>
+<tr class="separator:aa3f85461f15abfb46fd7c732538b33ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a35e4c7ba75a16c0b512d543ef4fe9630">More...</a><br /></td></tr>
+<tr class="separator:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e947ee6996d5711f18d5b785757ccb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:a6e947ee6996d5711f18d5b785757ccb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#a6e947ee6996d5711f18d5b785757ccb3">More...</a><br /></td></tr>
+<tr class="separator:a6e947ee6996d5711f18d5b785757ccb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:af00042d94cb64fb8ac92cd84aff05bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#af00042d94cb64fb8ac92cd84aff05bf8">More...</a><br /></td></tr>
+<tr class="separator:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c54aa65599c3d2d6c62c752f850d6a6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6">guac_user_supports_required</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a0c54aa65599c3d2d6c62c752f850d6a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the given user supports the "required" instruction.  <a href="#a0c54aa65599c3d2d6c62c752f850d6a6">More...</a><br /></td></tr>
+<tr class="separator:a0c54aa65599c3d2d6c62c752f850d6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26d186ee6b669c78278124ece46cc8f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a26d186ee6b669c78278124ece46cc8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the given user supports WebP.  <a href="#a26d186ee6b669c78278124ece46cc8f7">More...</a><br /></td></tr>
+<tr class="separator:a26d186ee6b669c78278124ece46cc8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, const char *default_value)</td></tr>
+<tr class="memdesc:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value.  <a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">More...</a><br /></td></tr>
+<tr class="separator:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f6fd4d84de665487a45fb324dc8844"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a08f6fd4d84de665487a45fb324dc8844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single integer argument received from a joining user, returning the integer value of that argument.  <a href="#a08f6fd4d84de665487a45fb324dc8844">More...</a><br /></td></tr>
+<tr class="separator:a08f6fd4d84de665487a45fb324dc8844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f0bae838d82357e95e98769f7b98cd2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a5f0bae838d82357e95e98769f7b98cd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false).  <a href="#a5f0bae838d82357e95e98769f7b98cd2">More...</a><br /></td></tr>
+<tr class="separator:a5f0bae838d82357e95e98769f7b98cd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0eff54a869374e37237b2006ad77b958"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0eff54a869374e37237b2006ad77b958">&#9670;&nbsp;</a></span>guac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a586cd1d712dce0db02d57684ddcb02ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a586cd1d712dce0db02d57684ddcb02ef">&#9670;&nbsp;</a></span>guac_user_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__user.html">guac_user</a>* guac_user_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, blank user, not associated with any specific client or socket. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a>, or NULL if allocation failed. </dd></dl>
+
+</div>
+</div>
+<a id="a6fa98ba49213d610491248cf085aaf56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6fa98ba49213d610491248cf085aaf56">&#9670;&nbsp;</a></span>guac_user_alloc_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__object.html">guac_object</a>* guac_user_alloc_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new object. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated object is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the object for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available object, or a newly allocated object. </dd></dl>
+
+</div>
+</div>
+<a id="a35a47c81b581f7aff3eb04c2a6d35b7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">&#9670;&nbsp;</a></span>guac_user_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_user_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a7e0e1220fd00fd769b8e6b731f8c9bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">&#9670;&nbsp;</a></span>guac_user_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given user and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="acf92065fb6bbc92f9794ea50255acdb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf92065fb6bbc92f9794ea50255acdb9">&#9670;&nbsp;</a></span>guac_user_free_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object.">guac_user_alloc_object()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the object to.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to return to the pool of available object. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a3b3c740837b8e2cae6a232b45ca362f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b3c740837b8e2cae6a232b45ca362f4">&#9670;&nbsp;</a></span>guac_user_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream.">guac_user_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the stream to. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a28f08ab54f138796dea4655ef54526fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28f08ab54f138796dea4655ef54526fe">&#9670;&nbsp;</a></span>guac_user_handle_connection()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_connection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake. </p>
+<p>The handshake-related properties of the given <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared.">guac_user</a> are automatically populated, and <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78" title="Call the appropriate handler defined by the given user for the given instruction.">guac_user_handle_instruction()</a> is invoked for all instructions received after the handshake has completed. This function blocks until the connection/user is aborted or the user disconnects.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handshake and entire Guacamole protocol exchange should be handled. The user must already be associated with a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole.">guac_socket</a> and <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a>, and the <a class="el" href="structguac__client.html" title="Guacamole proxy client.">guac_client</a> must already be fully initialized.</td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The number of microseconds to wait for instructions from the given user before closing the connection with an error.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user's Guacamole connection was successfully handled and the user has disconnected, or non-zero if an error prevented the user's connection from being handled properly. </dd></dl>
+
+</div>
+</div>
+<a id="a0303ef487d51b06bb0f007f1a5df0d78"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0303ef487d51b06bb0f007f1a5df0d78">&#9670;&nbsp;</a></span>guac_user_handle_instruction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_instruction </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Call the appropriate handler defined by the given user for the given instruction. </p>
+<p>A comparison is made between the instruction opcode and the initial handler lookup table defined in user-handlers.c. The initial handlers will in turn call the user's handler (if defined).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handlers should be called.</td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to pass to the user via the appropriate handler.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments which are part of the instruction.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments which are part of the instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-negative if the instruction was handled successfully, or negative if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab19481d0800901190d3d734eae466151"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab19481d0800901190d3d734eae466151">&#9670;&nbsp;</a></span>guac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a5f0bae838d82357e95e98769f7b98cd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f0bae838d82357e95e98769f7b98cd2">&#9670;&nbsp;</a></span>guac_user_parse_args_boolean()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_boolean </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false). </p>
+<p>Only "true" and "false" are legitimate values for a boolean argument. If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true (1) if the provided argument value is "true", false (0) if the provided argument value is "false", or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a08f6fd4d84de665487a45fb324dc8844"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a08f6fd4d84de665487a45fb324dc8844">&#9670;&nbsp;</a></span>guac_user_parse_args_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single integer argument received from a joining user, returning the integer value of that argument. </p>
+<p>If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The integer value parsed from the provided argument value, or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a7530b31b5a621a4f68fdce4bee2bdc5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">&#9670;&nbsp;</a></span>guac_user_parse_args_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user_parse_args_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value. </p>
+<p>If the argument provided by the user is blank, a newly-allocated string containing the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank. If this value is not NULL, the returned value will be a newly-allocated string containing this value.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated string containing the provided argument value. If the provided argument value is blank, this newly-allocated string will contain the default value. If the default value is NULL and the provided argument value is blank, no string will be allocated and NULL is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a8216ec7024947564fb4ea6b8b0b07eaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8216ec7024947564fb4ea6b8b0b07eaf">&#9670;&nbsp;</a></span>guac_user_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa3f85461f15abfb46fd7c732538b33ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3f85461f15abfb46fd7c732538b33ea">&#9670;&nbsp;</a></span>guac_user_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user who should receive the connection parameter value.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6e947ee6996d5711f18d5b785757ccb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e947ee6996d5711f18d5b785757ccb3">&#9670;&nbsp;</a></span>guac_user_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a35e4c7ba75a16c0b512d543ef4fe9630"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35e4c7ba75a16c0b512d543ef4fe9630">&#9670;&nbsp;</a></span>guac_user_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af00042d94cb64fb8ac92cd84aff05bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af00042d94cb64fb8ac92cd84aff05bf8">&#9670;&nbsp;</a></span>guac_user_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7" title="Returns whether the given user supports WebP.">guac_user_supports_webp()</a> or <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP.">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0c54aa65599c3d2d6c62c752f850d6a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0c54aa65599c3d2d6c62c752f850d6a6">&#9670;&nbsp;</a></span>guac_user_supports_required()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_supports_required </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether the given user supports the "required" instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user to check for support of the "required" instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the user supports the "required" instruction, otherwise zero. </dd></dl>
+
+</div>
+</div>
+<a id="a26d186ee6b669c78278124ece46cc8f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26d186ee6b669c78278124ece46cc8f7">&#9670;&nbsp;</a></span>guac_user_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether the given user supports WebP. </p>
+<p>If the user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user to check for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the given user claims to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad8529247b551cb93509236a7f9138dd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8529247b551cb93509236a7f9138dd2">&#9670;&nbsp;</a></span>vguac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af15509bcb891932a3fa93a142018b95c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af15509bcb891932a3fa93a142018b95c">&#9670;&nbsp;</a></span>vguac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/user_8h_source.html b/doc/1.3.0/libguac/user_8h_source.html
new file mode 100644
index 0000000..4572158
--- /dev/null
+++ b/doc/1.3.0/libguac/user_8h_source.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-constants_8h.html">user-constants.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__user__info.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">   54</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">   62</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">   68</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">   74</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a>;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">   81</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">   90</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">   97</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">  103</a></span>&#160;    <a class="code" href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a> <a class="code" href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">protocol_version</a>;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;};</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structguac__user.html">  107</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> {</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">  112</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a>;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">  119</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">  127</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">  133</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">  141</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __prev;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __next;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">  163</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a>;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">  170</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">  176</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">  182</a></span>&#160;    <a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a>;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __input_streams;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __object_pool;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <a class="code" href="structguac__object.html">guac_object</a>* __objects;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">  212</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">  239</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">  257</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">  278</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">  295</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">  314</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">  333</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">  352</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">  371</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">  389</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">  408</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">  427</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">  447</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">  467</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">  489</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">  510</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;};</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<a class="code" href="structguac__user.html">guac_user</a>* <a class="code" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a>();</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode,</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<a class="code" href="structguac__object.html">guac_object</a>* <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6">guac_user_supports_required</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keyword">const</span> <span class="keywordtype">char</span>* default_value);</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;</div><div class="ttc" id="structguac__user_html_a793f7ef1cd818c296e7a5801c349f5ed"><div class="ttname"><a href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:389</div></div>
+<div class="ttc" id="user_8h_html_a6fa98ba49213d610491248cf085aaf56"><div class="ttname"><a href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a></div><div class="ttdeci">guac_object * guac_user_alloc_object(guac_user *user)</div><div class="ttdoc">Allocates a new object.</div></div>
+<div class="ttc" id="structguac__user_html_a0120f63e0eb933761666047ed80e483f"><div class="ttname"><a href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user::info</a></div><div class="ttdeci">guac_user_info info</div><div class="ttdoc">Information structure containing properties exposed by the remote user during the initial handshake p...</div><div class="ttdef"><b>Definition:</b> user.h:182</div></div>
+<div class="ttc" id="user_8h_html_af15509bcb891932a3fa93a142018b95c"><div class="ttname"><a href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a></div><div class="ttdeci">void vguac_user_log(guac_user *user, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given user.</div></div>
+<div class="ttc" id="structguac__user_html_ab9b8b3c268a0d14a28bdae6929cffb13"><div class="ttname"><a href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user::key_handler</a></div><div class="ttdeci">guac_user_key_handler * key_handler</div><div class="ttdoc">Handler for key events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:257</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="structguac__user_html_a209e83f080baf2e84d04cf08395374d2"><div class="ttname"><a href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user::sync_handler</a></div><div class="ttdeci">guac_user_sync_handler * sync_handler</div><div class="ttdoc">Handler for sync events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:408</div></div>
+<div class="ttc" id="structguac__user__info_html_ac19c08c0ef7441556be0afed6fb9c7c7"><div class="ttname"><a href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info::optimal_resolution</a></div><div class="ttdeci">int optimal_resolution</div><div class="ttdoc">The DPI of the physical remote display if configured for the optimal width/height combination describ...</div><div class="ttdef"><b>Definition:</b> user.h:90</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="structguac__user_html_ada73c04bbf06de4280f2d7679190a19b"><div class="ttname"><a href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:447</div></div>
+<div class="ttc" id="structguac__user_html_a4b097cae9283bb0caf70189d4f3d1d0e"><div class="ttname"><a href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user::processing_lag</a></div><div class="ttdeci">int processing_lag</div><div class="ttdoc">The overall lag experienced by the user relative to the stream of frames, roughly excluding network l...</div><div class="ttdef"><b>Definition:</b> user.h:176</div></div>
+<div class="ttc" id="protocol-types_8h_html_ac7c1d15bae38b970886002bb9811ef8b"><div class="ttname"><a href="protocol-types_8h.html#ac7c1d15bae38b970886002bb9811ef8b">guac_protocol_version</a></div><div class="ttdeci">guac_protocol_version</div><div class="ttdoc">The set of protocol versions known to guacd to handle negotiation or feature support between differin...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:283</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams.</div></div>
+<div class="ttc" id="structguac__user_html_aebdee192ef52dfe8956c776adc65fb16"><div class="ttname"><a href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user::last_received_timestamp</a></div><div class="ttdeci">guac_timestamp last_received_timestamp</div><div class="ttdoc">The time (in milliseconds) of receipt of the last sync message from the user.</div><div class="ttdef"><b>Definition:</b> user.h:163</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole.</div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__user_html_a88a14fda25c9929269d198d4d602f7fb"><div class="ttname"><a href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:371</div></div>
+<div class="ttc" id="structguac__user_html_ad424a52c5d996e4a33de5dad61555883"><div class="ttname"><a href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary user-specific data.</div><div class="ttdef"><b>Definition:</b> user.h:212</div></div>
+<div class="ttc" id="structguac__user_html_a8b958a20fbe7cf082d5ee074fceac474"><div class="ttname"><a href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user::file_handler</a></div><div class="ttdeci">guac_user_file_handler * file_handler</div><div class="ttdoc">Handler for file events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:314</div></div>
+<div class="ttc" id="user_8h_html_a26d186ee6b669c78278124ece46cc8f7"><div class="ttname"><a href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a></div><div class="ttdeci">int guac_user_supports_webp(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports WebP.</div></div>
+<div class="ttc" id="structguac__user_html_a05ec6fd1894ff8df10c051b20df1b763"><div class="ttname"><a href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user::mouse_handler</a></div><div class="ttdeci">guac_user_mouse_handler * mouse_handler</div><div class="ttdoc">Handler for mouse events sent by the Gaucamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:239</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client.</div></div>
+<div class="ttc" id="user_8h_html_af00042d94cb64fb8ac92cd84aff05bf8"><div class="ttname"><a href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a></div><div class="ttdeci">void guac_user_stream_webp(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html_af35d1f6f2c97d917bf88cf66384f58a3"><div class="ttname"><a href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user::pipe_handler</a></div><div class="ttdeci">guac_user_pipe_handler * pipe_handler</div><div class="ttdoc">Handler for pipe events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:333</div></div>
+<div class="ttc" id="user_8h_html_a8216ec7024947564fb4ea6b8b0b07eaf"><div class="ttname"><a href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a></div><div class="ttdeci">void guac_user_stop(guac_user *user)</div><div class="ttdoc">Signals the given user that it must disconnect, or advises cooperating services that the given user i...</div></div>
+<div class="ttc" id="structguac__user_html_a77f042802092c8bbf4407836f3185343"><div class="ttname"><a href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user::clipboard_handler</a></div><div class="ttdeci">guac_user_clipboard_handler * clipboard_handler</div><div class="ttdoc">Handler for clipboard events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:278</div></div>
+<div class="ttc" id="structguac__user_html_ad44c1bf6ab56aae0098458a1af2aa6be"><div class="ttname"><a href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:352</div></div>
+<div class="ttc" id="structguac__user__info_html_ac05b09cce376e656f4e4baa19f888345"><div class="ttname"><a href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info::image_mimetypes</a></div><div class="ttdeci">const char ** image_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported image mimetypes.</div><div class="ttdef"><b>Definition:</b> user.h:81</div></div>
+<div class="ttc" id="structguac__user_html_a265180af7291745b2e090ee6fa47cbb8"><div class="ttname"><a href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user::owner</a></div><div class="ttdeci">int owner</div><div class="ttdoc">Non-zero if this user is the owner of the associated connection, zero otherwise.</div><div class="ttdef"><b>Definition:</b> user.h:133</div></div>
+<div class="ttc" id="user_8h_html_a0c54aa65599c3d2d6c62c752f850d6a6"><div class="ttname"><a href="user_8h.html#a0c54aa65599c3d2d6c62c752f850d6a6">guac_user_supports_required</a></div><div class="ttdeci">int guac_user_supports_required(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports the &quot;required&quot; instruction.</div></div>
+<div class="ttc" id="structguac__user_html_a391e11605bf5605df3e27f6f7d0e2c69"><div class="ttname"><a href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user::audio_handler</a></div><div class="ttdeci">guac_user_audio_handler * audio_handler</div><div class="ttdoc">Handler for audio events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:489</div></div>
+<div class="ttc" id="user_8h_html_a5f0bae838d82357e95e98769f7b98cd2"><div class="ttname"><a href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a></div><div class="ttdeci">int guac_user_parse_args_boolean(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single boolean argument received from a joining user, returning the value of ...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="user_8h_html_a28f08ab54f138796dea4655ef54526fe"><div class="ttname"><a href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a></div><div class="ttdeci">int guac_user_handle_connection(guac_user *user, int usec_timeout)</div><div class="ttdoc">Handles all I/O for the portion of a user's Guacamole connection following the initial &quot;select&quot; instr...</div></div>
+<div class="ttc" id="structguac__user_html_a36a2fee906be0898907ba6e4a97bdb9a"><div class="ttname"><a href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user::size_handler</a></div><div class="ttdeci">guac_user_size_handler * size_handler</div><div class="ttdoc">Handler for size events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:295</div></div>
+<div class="ttc" id="structguac__user__info_html_a496d5f3d26a7db0a0490afa553126c66"><div class="ttname"><a href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info::optimal_width</a></div><div class="ttdeci">int optimal_width</div><div class="ttdoc">The number of pixels the remote client requests for the display width.</div><div class="ttdef"><b>Definition:</b> user.h:54</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared.</div><div class="ttdef"><b>Definition:</b> user.h:107</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user_8h_html_aa3f85461f15abfb46fd7c732538b33ea"><div class="ttname"><a href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a></div><div class="ttdeci">void guac_user_stream_argv(guac_user *user, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction),...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="structguac__user_html_a12f1c20cab11d657e0f255db10f42e2f"><div class="ttname"><a href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events fired by the guac_client when a guac_user is leaving an active connection.</div><div class="ttdef"><b>Definition:</b> user.h:427</div></div>
+<div class="ttc" id="structguac__user__info_html_a252079af642b62554566e8675dc43354"><div class="ttname"><a href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info::optimal_height</a></div><div class="ttdeci">int optimal_height</div><div class="ttdoc">The number of pixels the remote client requests for the display height.</div><div class="ttdef"><b>Definition:</b> user.h:62</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers.</div></div>
+<div class="ttc" id="structguac__user_html_ac7e84b1bf15d3d15ba49ce58f1819060"><div class="ttname"><a href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user::last_frame_duration</a></div><div class="ttdeci">int last_frame_duration</div><div class="ttdoc">The duration of the last frame rendered by the user, in milliseconds.</div><div class="ttdef"><b>Definition:</b> user.h:170</div></div>
+<div class="ttc" id="user_8h_html_a0303ef487d51b06bb0f007f1a5df0d78"><div class="ttname"><a href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a></div><div class="ttdeci">int guac_user_handle_instruction(guac_user *user, const char *opcode, int argc, char **argv)</div><div class="ttdoc">Call the appropriate handler defined by the given user for the given instruction.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="structguac__user_html_a1b52d918f437923d65e9b3eecb20fcfd"><div class="ttname"><a href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">Non-zero if this user is active (connected), and zero otherwise.</div><div class="ttdef"><b>Definition:</b> user.h:141</div></div>
+<div class="ttc" id="user_8h_html_ab19481d0800901190d3d734eae466151"><div class="ttname"><a href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a></div><div class="ttdeci">void guac_user_log(guac_user *user, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given user.</div></div>
+<div class="ttc" id="structguac__user__info_html_ace535bea6879596b6473657f3fc83b57"><div class="ttname"><a href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info::video_mimetypes</a></div><div class="ttdeci">const char ** video_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported video mimetypes.</div><div class="ttdef"><b>Definition:</b> user.h:74</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds.</div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client.</div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="user_8h_html_a3b3c740837b8e2cae6a232b45ca362f4"><div class="ttname"><a href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a></div><div class="ttdeci">void guac_user_free_stream(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user_8h_html_a08f6fd4d84de665487a45fb324dc8844"><div class="ttname"><a href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a></div><div class="ttdeci">int guac_user_parse_args_int(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single integer argument received from a joining user, returning the integer v...</div></div>
+<div class="ttc" id="structguac__user__info_html_a043432620dafe7ba38fcd3550fdc7d27"><div class="ttname"><a href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info::audio_mimetypes</a></div><div class="ttdeci">const char ** audio_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported audio mimetypes.</div><div class="ttdef"><b>Definition:</b> user.h:68</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers.</div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="structguac__user_html_ab6b6bdcd73d29132df5f331921ca287a"><div class="ttname"><a href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user::argv_handler</a></div><div class="ttdeci">guac_user_argv_handler * argv_handler</div><div class="ttdoc">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by t...</div><div class="ttdef"><b>Definition:</b> user.h:510</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user_8h_html_a35a47c81b581f7aff3eb04c2a6d35b7c"><div class="ttname"><a href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_user_alloc_stream(guac_user *user)</div><div class="ttdoc">Allocates a new stream.</div></div>
+<div class="ttc" id="user_8h_html_a7e0e1220fd00fd769b8e6b731f8c9bf8"><div class="ttname"><a href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a></div><div class="ttdeci">void guac_user_free(guac_user *user)</div><div class="ttdoc">Frees the given user and all associated resources.</div></div>
+<div class="ttc" id="structguac__user_html_a8496638b8c4c52f5f15d483b92becf27"><div class="ttname"><a href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">This user's actual socket.</div><div class="ttdef"><b>Definition:</b> user.h:119</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user_8h_html_a7530b31b5a621a4f68fdce4bee2bdc5f"><div class="ttname"><a href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a></div><div class="ttdeci">char * guac_user_parse_args_string(guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value)</div><div class="ttdoc">Automatically handles a single argument received from a joining user, returning a newly-allocated str...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers.</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events.</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="user_8h_html_a0eff54a869374e37237b2006ad77b958"><div class="ttname"><a href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a></div><div class="ttdeci">void guac_user_abort(guac_user *user, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_a6e947ee6996d5711f18d5b785757ccb3"><div class="ttname"><a href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a></div><div class="ttdeci">void guac_user_stream_jpeg(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations.</div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol.</div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__user__info_html_aae0a9e3db4f19e3052e7c9c9a81c5658"><div class="ttname"><a href="structguac__user__info.html#aae0a9e3db4f19e3052e7c9c9a81c5658">guac_user_info::protocol_version</a></div><div class="ttdeci">guac_protocol_version protocol_version</div><div class="ttdoc">The Guacamole protocol version that the remote system supports, allowing for feature support to be ne...</div><div class="ttdef"><b>Definition:</b> user.h:103</div></div>
+<div class="ttc" id="structguac__user__info_html_a2c08990b6fd1e0627652a9c879ea2078"><div class="ttname"><a href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info::timezone</a></div><div class="ttdeci">const char * timezone</div><div class="ttdoc">The timezone of the remote system.</div><div class="ttdef"><b>Definition:</b> user.h:97</div></div>
+<div class="ttc" id="structguac__user_html_a5e296149a26932dfeb7d8b0bac933ecf"><div class="ttname"><a href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The guac_client to which this user belongs.</div><div class="ttdef"><b>Definition:</b> user.h:112</div></div>
+<div class="ttc" id="user_8h_html_ad8529247b551cb93509236a7f9138dd2"><div class="ttname"><a href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a></div><div class="ttdeci">void vguac_user_abort(guac_user *user, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_acf92065fb6bbc92f9794ea50255acdb9"><div class="ttname"><a href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a></div><div class="ttdeci">void guac_user_free_object(guac_user *user, guac_object *object)</div><div class="ttdoc">Returns the given object to the pool of available objects, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client.</div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="structguac__user_html_a0b33553d0e1af01d8c9fbc6ec33202c3"><div class="ttname"><a href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client.</div><div class="ttdef"><b>Definition:</b> user.h:467</div></div>
+<div class="ttc" id="user_8h_html_a586cd1d712dce0db02d57684ddcb02ef"><div class="ttname"><a href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a></div><div class="ttdeci">guac_user * guac_user_alloc()</div><div class="ttdoc">Allocates a new, blank user, not associated with any specific client or socket.</div></div>
+<div class="ttc" id="user_8h_html_a35e4c7ba75a16c0b512d543ef4fe9630"><div class="ttname"><a href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a></div><div class="ttdeci">void guac_user_stream_png(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="structguac__user_html_aad1c6a8b56d17c12eb1f1e36c4798c70"><div class="ttname"><a href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user::user_id</a></div><div class="ttdeci">char * user_id</div><div class="ttdoc">The unique identifier allocated for this user, which may be used within the Guacamole protocol to ref...</div><div class="ttdef"><b>Definition:</b> user.h:127</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps.</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object.</div></div>
+<div class="ttc" id="user-constants_8h_html"><div class="ttname"><a href="user-constants_8h.html">user-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole user structure, guac_user.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/wol-constants_8h.html b/doc/1.3.0/libguac/wol-constants_8h.html
new file mode 100644
index 0000000..af647d1
--- /dev/null
+++ b/doc/1.3.0/libguac/wol-constants_8h.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/wol-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">wol-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Header file that provides constants and defaults related to libguac Wake-on-LAN support.  
+<a href="#details">More...</a></p>
+
+<p><a href="wol-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a8a3ab3403bd4e7295bcc59f9edbcc35f"><td class="memItemLeft" align="right" valign="top"><a id="a8a3ab3403bd4e7295bcc59f9edbcc35f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f">GUAC_WOL_LOCAL_IPV4_BROADCAST</a>&#160;&#160;&#160;&quot;255.255.255.255&quot;</td></tr>
+<tr class="memdesc:a8a3ab3403bd4e7295bcc59f9edbcc35f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The value for the local IPv4 broadcast address. <br /></td></tr>
+<tr class="separator:a8a3ab3403bd4e7295bcc59f9edbcc35f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93bd13de95bbdc785737ac23ad965f54"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54">GUAC_WOL_PACKET_SIZE</a>&#160;&#160;&#160;102</td></tr>
+<tr class="memdesc:a93bd13de95bbdc785737ac23ad965f54"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the magic Wake-on-LAN packet to send to wake a remote host.  <a href="#a93bd13de95bbdc785737ac23ad965f54">More...</a><br /></td></tr>
+<tr class="separator:a93bd13de95bbdc785737ac23ad965f54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fd19bb639955ecb864cc6d25de4f41b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b">GUAC_WOL_PORT</a>&#160;&#160;&#160;9</td></tr>
+<tr class="memdesc:a7fd19bb639955ecb864cc6d25de4f41b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The port number that the magic packet should contain as the destination.  <a href="#a7fd19bb639955ecb864cc6d25de4f41b">More...</a><br /></td></tr>
+<tr class="separator:a7fd19bb639955ecb864cc6d25de4f41b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Header file that provides constants and defaults related to libguac Wake-on-LAN support. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a93bd13de95bbdc785737ac23ad965f54"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93bd13de95bbdc785737ac23ad965f54">&#9670;&nbsp;</a></span>GUAC_WOL_PACKET_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_WOL_PACKET_SIZE&#160;&#160;&#160;102</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The size of the magic Wake-on-LAN packet to send to wake a remote host. </p>
+<p>This consists of 6 bytes of 0xFF, and then the MAC address repeated 16 times. <a href="https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet">https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet</a> </p>
+
+</div>
+</div>
+<a id="a7fd19bb639955ecb864cc6d25de4f41b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fd19bb639955ecb864cc6d25de4f41b">&#9670;&nbsp;</a></span>GUAC_WOL_PORT</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_WOL_PORT&#160;&#160;&#160;9</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The port number that the magic packet should contain as the destination. </p>
+<p>In reality this doesn't matter all that much, since the packet is not usually processed by a full IP stack, but defining one is considered a standard practice. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/wol-constants_8h_source.html b/doc/1.3.0/libguac/wol-constants_8h_source.html
new file mode 100644
index 0000000..94d06e8
--- /dev/null
+++ b/doc/1.3.0/libguac/wol-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/wol-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">wol-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="wol-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_WOL_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_WOL_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="wol-constants_8h.html#a8a3ab3403bd4e7295bcc59f9edbcc35f">   33</a></span>&#160;<span class="preprocessor">#define GUAC_WOL_LOCAL_IPV4_BROADCAST &quot;255.255.255.255&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="wol-constants_8h.html#a93bd13de95bbdc785737ac23ad965f54">   40</a></span>&#160;<span class="preprocessor">#define GUAC_WOL_PACKET_SIZE 102</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="wol-constants_8h.html#a7fd19bb639955ecb864cc6d25de4f41b">   48</a></span>&#160;<span class="preprocessor">#define GUAC_WOL_PORT 9</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GUAC_WOL_CONSTANTS_H */</span><span class="preprocessor"></span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/wol_8h.html b/doc/1.3.0/libguac/wol_8h.html
new file mode 100644
index 0000000..2443407
--- /dev/null
+++ b/doc/1.3.0/libguac/wol_8h.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/wol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">wol.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Header that provides functions and structures related to Wake-on-LAN support in libguac.  
+<a href="#details">More...</a></p>
+
+<p><a href="wol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ace39296575e120004284bae76c6053cb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="wol_8h.html#ace39296575e120004284bae76c6053cb">guac_wol_wake</a> (const char *mac_addr, const char *broadcast_addr)</td></tr>
+<tr class="memdesc:ace39296575e120004284bae76c6053cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send the wake-up packet to the specified destination, returning zero if the wake was sent successfully, or non-zero if an error occurs sending the wake packet.  <a href="#ace39296575e120004284bae76c6053cb">More...</a><br /></td></tr>
+<tr class="separator:ace39296575e120004284bae76c6053cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Header that provides functions and structures related to Wake-on-LAN support in libguac. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ace39296575e120004284bae76c6053cb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace39296575e120004284bae76c6053cb">&#9670;&nbsp;</a></span>guac_wol_wake()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_wol_wake </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mac_addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>broadcast_addr</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Send the wake-up packet to the specified destination, returning zero if the wake was sent successfully, or non-zero if an error occurs sending the wake packet. </p>
+<p>Note that the return value does not specify whether the system actually wakes up successfully, only whether or not the packet is transmitted.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">mac_addr</td><td>The MAC address to place in the magic Wake-on-LAN packet.</td></tr>
+    <tr><td class="paramname">broadcast_addr</td><td>The broadcast address to which to send the magic Wake-on-LAN packet.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the packet is successfully sent to the destination; non-zero if the packet cannot be sent. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.3.0/libguac/wol_8h_source.html b/doc/1.3.0/libguac/wol_8h_source.html
new file mode 100644
index 0000000..0d92377
--- /dev/null
+++ b/doc/1.3.0/libguac/wol_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/wol.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.3.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">wol.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="wol_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_WOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_WOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="wol-constants_8h.html">wol-constants.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keywordtype">int</span> <a class="code" href="wol_8h.html#ace39296575e120004284bae76c6053cb">guac_wol_wake</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* mac_addr, <span class="keyword">const</span> <span class="keywordtype">char</span>* broadcast_addr);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GUAC_WOL_H */</span><span class="preprocessor"></span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="ttc" id="wol_8h_html_ace39296575e120004284bae76c6053cb"><div class="ttname"><a href="wol_8h.html#ace39296575e120004284bae76c6053cb">guac_wol_wake</a></div><div class="ttdeci">int guac_wol_wake(const char *mac_addr, const char *broadcast_addr)</div><div class="ttdoc">Send the wake-up packet to the specified destination, returning zero if the wake was sent successfull...</div></div>
+<div class="ttc" id="wol-constants_8h_html"><div class="ttname"><a href="wol-constants_8h.html">wol-constants.h</a></div><div class="ttdoc">Header file that provides constants and defaults related to libguac Wake-on-LAN support.</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.15
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
